前言:
在游戏中,关于在列表中 查找某行数据时,需要通过关键字匹配,去遍历表中的数据,如果表中匹配到关键字,则返回该行数据,没有则返回null。比如查找在好友列表查找某个好友时。
建立一个 data 数据:用于保存item 的所有信息 (如: id,title,content,icon 等)
public class Data{
public int id;
public string name;
public string title;
public string content;
public string icon;
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
int count = list.Count;
for(int i=0; i<count; i++){
Data data = list[i];
if(data.name.Indexof(str) != -1)
m_list.Add(data);
return m_list; // 返回新的列表,符合模糊查询的结果列表
用foreach 遍历, 通过name模糊查找
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
foreach(Data data in list)
if(data.name.Indexof(str) != -1){
m_list.Add(data);
return m_list;
使用 list.Find(); 通过name 精确查找,不存在返回null
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
Data data = list.Find(m_data=> m_data == str);
if(data != null){
m_list.Add(data);
return m_list;
关于 list 的更多使用方法,请参考:
http://www.cnblogs.com/AdaLoong/p/5528917.html
前言: 在游戏中,关于在列表中 查找某行数据时,需要通过关键字匹配,去遍历表中的数据,如果表中匹配到关键字,则返回该行数据,没有则返回null。比如查找在好友列表查找某个好友时。建立一个 data 数据:用于保存item 的所有信息 (如: id,title,content,icon 等)public class Data{ public int id; public string name
这些是不同“编辑距离”或模糊字符串比较算法的 C# 实现。
莱文斯坦距离
两个单词之间的 Levenshtein 距离是将一个单词更改为另一个单词所需的最小单字符编辑(插入、删除、替换)次数。 短语编辑距离通常用于特指 Levenshtein 距离。 它以弗拉基米尔·莱文施泰因 (Vladimir Levenshtein) 的名字命名,他在 1965 年考虑了这个距离。
var calc = new LevenshteinDistanceCalculator();
var distance = calc.Distance("Hello, world!", "Hello, Arnold!"); // 4
distance为 4:
1 删除 ( r )
1 替换 ( w -> n )
2 加法 ( A , r )
Damerau-Levenshtein 距离
Damer
额。。。今天看了半天Ilist<T>和List<T>的区别,然后惊奇的发现使用IList<T>还是List<T>对我的项目来说没有区别。。。
在C#中,数组、ArrayList都能够存储一组对象,那么三者到底有什么样的区别呢?
数组在C#中最早出现的。在内存中是连续的,所以它的索引速度非常快,而且赋值与修改元素也很简单。
//第一种 只需要获取文件夹路径
string path = @"文件夹路径", fileName= "文件夹下的名称";
string[] files = Directory.GetDirectories(path, "*" +fileName , System.IO.SearchOption.AllDirectories);
foreach (var item in files)
Console.WriteLine(item + "\r\t");
//第二种 需要获取
c#中如何使用到模糊查询,先举个最简单实用的例子,可在vs控制台应用程序中输出:
定义实体类:
public class Student { public int ID { get; set; }
public string Name { get; set; }
public int? Age { get...
Unity 问题汇总:The AnimationClip ‘***‘ used by the Animation component ‘***‘ must be marked as Legacy
Unity 秒数格式化时间显示