src/DotNetCommon.PinYin/PinyinMatch.T.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using DotNetCommon.PinYin.Internals;
namespace DotNetCommon.PinYin
{
/// <summary>
/// 拼音匹配, 不支持[0x20000-0x2B81D]
/// </summary>
/// <typeparam name="T"></typeparam>
internal class PinyinMatch<T> : BasePinyinMatch
{
private ICollection<T> _list;
private Func<T, string> _keywordsFunc;
private Func<T, string> _pinyinFunc;
private char _splitChar = ',';
public PinyinMatch(ICollection<T> list)
{
_list = list;
}
/// <summary>
/// 设置获取关键字的方法
/// </summary>
/// <param name="keywordsFunc"></param>
public void SetKeywordsFunc(Func<T, string> keywordsFunc)
{
_keywordsFunc = keywordsFunc;
}
/// <summary>
/// 设置获取拼音的方法
/// </summary>
/// <param name="pinyinFunc"></param>
public void SetPinyinFunc(Func<T, string> pinyinFunc)
{
_pinyinFunc = pinyinFunc;
}
/// <summary>
/// 设置拼音分隔符
/// </summary>
/// <param name="splitChar"></param>
public void SetPinyinSplitChar(char splitChar = ',')
{
_splitChar = splitChar;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="keywords"></param>
/// <returns></returns>
public List<T> Find(string keywords)
{
if (_keywordsFunc == null) {
throw new Exception("请先使用SetKeywordsFunc方法。");
}
keywords = keywords.ToUpper().Trim();
后面还有 122 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
