我找不到或弄清楚类似的 LINQ 示例。
例如,我有 2 个列表:
List<List<string>> cases = new List<List<string>>()
{
new List<string>() { "a", "c", "b", "w", "z" },
new List<string>() { "s", "c", "b", "w", "z" },
new List<string>() { "t", "c", "b", "w", "z" },
new List<string>() { "u", "c", "b", "w", "z" }, //<- this one should be picked up
};
和
List<List<string>> pairs = new List<List<string>>()
{
new List<string>() { "a", "r" },
new List<string>() { "a", "f" },
new List<string>() { "u", "f" },
new List<string>() { "u", "z" }, //<- these are contained
};
我需要获取包含
cases
中任意元素的所有元素的 pairs
。如何使用 LINQ 做到这一点?
我最好的尝试是:
var res = pairs.Where(x => cases.All(y => x.All(z => y.IndexOf(z) >= 0))).ToList();
但没有给出任何结果:/
这会给你你想要的结果:
var res = cases.Where(caseList => pairs.Any(pairList => pairList.All(caseList.Contains))).ToList();