我有一个列表列表,其中子列表是字符串列表。我期待的结果是所有不同字符串的列表。 例如:
var listoflist = new List<List<string>> { new List<string> { "A", "B", "C" },
new List<string> { "A", "B", "D", "E" } };
对于上面的列表,我期望输出为 {"A","B","C","D","E"}
这是我找到的解决方案,但我觉得它不是一个有效的解决方案。请提供您对此的想法。
var listoflist = new List<List<string>> { new List<string> { "A", "B", "C" },
new List<string> { "A", "B", "D", "E" } };
List<string> distinctList = new List<string>();
listoflist.ForEach(list =>
{
distinctList.AddRange(list);
});
distinctList = distinctList.Distinct().ToList();
最佳答案
您可以使用 Enumerable.SelectMany
展平列表:
var list = listoflist.SelectMany(x => x).Distinct();
如果你想具体化查询并得到一个List<string>
, 添加 ToList()
.
关于c# - 如何从 C# 中的列表列表中获取不同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34313041/