Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算一个列表中的元素在另一个列表中的出现次数_C#_Linq_Combinations_Combinatorics - Fatal编程技术网

C# 计算一个列表中的元素在另一个列表中的出现次数

C# 计算一个列表中的元素在另一个列表中的出现次数,c#,linq,combinations,combinatorics,C#,Linq,Combinations,Combinatorics,我有两张单子。但不是通常的 第一: Combinations<string> someCombination = new Combinations<string>(someOtherList, 2); var firstList = someCombination.ToList(); 第二: List<List<string>> secondList = new List<List<string>>(); 如您所

我有两张单子。但不是通常的

第一:

Combinations<string> someCombination = new Combinations<string>(someOtherList, 2);
var firstList = someCombination.ToList();  
第二:

List<List<string>> secondList = new List<List<string>>();  
如您所见,我正在使用
组合学.Collections
库。 我真正想要的是计算
string
元素在整个
secondList
中出现的次数,并将所有这些计数存储在第三个列表中。像这个:

List<int> occurrences = new List<int>();
^如果我数错了,我的错

我想LINQ可能会在这里派上用场,但我对此完全没有希望。如果我错了,请纠正我。我真的很感激这里的帮助

  var occurrences = firstList.Select(l => secondList.Count(ss => l.All(ss.Contains))).ToList();

请注意,如果这些列表很大,并且您关心性能,那么这不是一个好的解决方案。在这种情况下,我会考虑选择更合适的数据结构。

坦率地说,我只关心它是否给出结果,并且您的解决方案是否真的如我所愿。我对你感激不尽@歌利亚·皮奥特:太好了!那你能接受我的回答吗?对不起,我是新来的。我想我现在接受了。当心!
List<int> occurrences = new List<int>();
 [0] 1  //because both "cy" and "gr" are contained in 1 secondList sublist(s)
 [1] 2  //because both "cy" and "ja" are contained in 2 secondList sublist(s)
 [2] 1  //et cetera..
 [3] 3
 [4] 1
 [5] 2
 [6] 1
 [7] 2
 [8] 2
 [9] 3
[10] 4
[11] 2
[12] 2
[13] 2
[14] 3
  var occurrences = firstList.Select(l => secondList.Count(ss => l.All(ss.Contains))).ToList();