我有两个清单。虽然不是常见的。
首先:
Combinations<string> someCombination = new Combinations<string>(someOtherList, 2);
var firstList = someCombination.ToList();
它返回:
[0] { cy gr }
[1] { cy ja }
[2] { cy ka }
[3] { cy wo }
[4] { cy zo }
[5] { gr ja }
[6] { gr ka }
[7] { gr wo }
[8] { gr zo }
[9] { ja ka }
[10] { ja wo }
[11] { ja zo }
[12] { ka wo }
[13] { ka zo }
[14] { wo zo }
第二
List<List<string>> secondList = new List<List<string>>();
它返回:
[0] { gr ch wo zo }
[1] { zo cy gr ma }
[2] { wo po ja cy }
[3] { ja ka po gr }
[4] { zo ka ja og }
[5] { cy ja zo wo }
[6] { gr og po ma }
[7] { wo zo ka cy }
[8] { gr og wo ja }
[9] { ja ka ch wo }
如您所见,我正在使用Combinatorics.Collections
库。
我真正想要的是计算整个string
中firstList
的{{1}}个元素出现的次数,并将所有这些计数存储在第三个列表中。像这样:
secondList
这是一个示例,该列表如何显示,每个索引都匹配List<int> occurrences = new List<int>();
索引:
firstList
^如果我错误地计算了那些,我的坏。
我认为LINQ可能会在这里派上用场,但我完全没有希望了。如果我错了,请纠正我。我真的很感激这里的帮助。
答案 0 :(得分:-1)
var occurrences = firstList.Select(l => secondList.Count(ss => l.All(ss.Contains))).ToList();
请注意,如果这些列表很大并且您关心性能,这不是一个好的解决方案。在这种情况下,我会考虑选择更合适的数据结构。