[英]Search item in list in another list in C#
我想将列表中的任何字符串项与另一个列表中的子字符串项进行匹配,然后将子字符串和重复放入字典中而不使用 for 循环,因为子字符串列表包含 24345000 个单元格。
string[] folders = Directory.GetDirectories(@"..\Raw Data", "*");
Dictionary<string, int> freq = new Dictionary<string, int>();
var letters= File.ReadAllLines(@"..\letters.txt").ToList();
foreach (string folder in folders)
{
string name_folder = Path.GetFileName(folder);
string[] N_F = Directory.GetFiles(@"..\items\" + folder, "*.txt");
foreach (string f in N_F)
{
List<string> s = File.ReadAllText(f).Split(' ').ToList();
s.RemoveAll(string.IsNullOrWhiteSpace);
foreach(string t in letters)
if(s.Contains(t))
if (freq.ContainsKey(t))
freq[t]++;
else
freq[t] = 1;
}
}
您正在寻找一种方法来搜索另一个列表中的列表中的单词出现次数。
// Sample Data
var letters = new string[] { "Apple", "Orange", "Mango", "Cherry" };
var masterList = new string[]
{ "Apple", "Tea", "Mango", "Apple", "Wheat", "Mango",
"Bread", "Orange", "Mango", "Apple", "Orange", "Mango",
"Apple", "Bread", "Mango", "Apple", "Bread", "Tea"
};
你可以试试:
var freq = words.Select(w => new { Word = w, Count = masterList.Count(m => m == w) })
.ToList();
freq
将包含:
Word = Apple Count = 5
Word = Orange Count = 2
Word = Mango Count = 5
Word = Cherry Count = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.