这有什么难的,做倒排索引,大概写几行,手写的,不要直接贴:Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>(); //key存放每个数据,value存放哪些文件有它
foreach (var file in Dictionary.GetFiles(@"目录"))
{
string[] lines = File.ReadAllLines(file); // 读取文件每一行
foreach (var item in lines)
{
if (!dict.ContainsKey(item)) dict.Add(item, new List<string>()); // 没有出现过,就新建一个索引项
dict[item].Add(file);
}
}
var query = dict.Where(x => x.Value.Count > 1); // 多于一个文件存在这个条目
foreach (var item in query)
{
Console.WriteLine(item.Key + "出现多于1次,它出现在如下文件中:" + string.Join(", ", item.Value.ToArray()) + "。");
}
foreach (var file in Dictionary.GetFiles(@"目录"))
{
string[] lines = File.ReadAllLines(file); // 读取文件每一行
foreach (var item in lines)
{
if (!dict.ContainsKey(item)) dict.Add(item, new List<string>()); // 没有出现过,就新建一个索引项
dict[item].Add(file);
}
}
var query = dict.Where(x => x.Value.Count > 1); // 多于一个文件存在这个条目
foreach (var item in query)
{
Console.WriteLine(item.Key + "出现多于1次,它出现在如下文件中:" + string.Join(", ", item.Value.ToArray()) + "。");
}
我当然知道不好啊,别人辛苦帮你写好代码,你直接copy用。 不但浪费别人时间,自己什么也没学到。