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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。