C# 从列表中查找不同的元素<;列表<;字符串>&燃气轮机;
我想根据内部列表的值在嵌套列表中查找不同的元素 当前列表结构:下图显示了一个表,其中每一行都是字符串列表,整个表是使用字符串列表生成的 这样使用:C# 从列表中查找不同的元素<;列表<;字符串>&燃气轮机;,c#,asp.net-mvc,linq,list,asp.net-mvc-5,C#,Asp.net Mvc,Linq,List,Asp.net Mvc 5,我想根据内部列表的值在嵌套列表中查找不同的元素 当前列表结构:下图显示了一个表,其中每一行都是字符串列表,整个表是使用字符串列表生成的 这样使用: var result = allrow.GroupBy(c => String.Join(",", c)) .Select(c => c.First().ToList()).ToList(); 您还可以实现一个EqualityComparer类,并在LINQ的Distin
var result = allrow.GroupBy(c => String.Join(",", c))
.Select(c => c.First().ToList()).ToList();
您还可以实现一个EqualityComparer
类,并在LINQ的Distinct
方法中使用它。但是我认为使用GroupBy
来实现这个目的会更简单。像这样使用:
var result = allrow.GroupBy(c => String.Join(",", c))
.Select(c => c.First().ToList()).ToList();
您还可以实现一个
EqualityComparer
类,并在LINQ的Distinct
方法中使用它。但我认为使用GroupBy
实现这个目的会更简单。好的,这里有一个类似于@S.Akbari的解决方案,应该可以帮助您了解基于LINQ的解决方案实际上是如何工作的
var rowMap = new Dictionary<string, List<string>>();
foreach (var row in allrow)
{
string key = string.Join(",", row);
if (rowMap.ContainsKey(key) == false)
{
rowMap.Add(key, row);
}
}
var result = rowMap.Values.ToList();
var rowMap=newdictionary();
foreach(所有行中的var行)
{
string key=string.Join(“,”行);
if(rowMap.ContainsKey(key)==false)
{
添加(键,行);
}
}
var result=rowMap.Values.ToList();
好的,这里有一个类似于@S.Akbari的解决方案,应该可以帮助您了解基于LINQ的解决方案实际上是如何工作的
var rowMap = new Dictionary<string, List<string>>();
foreach (var row in allrow)
{
string key = string.Join(",", row);
if (rowMap.ContainsKey(key) == false)
{
rowMap.Add(key, row);
}
}
var result = rowMap.Values.ToList();
var rowMap=newdictionary();
foreach(所有行中的var行)
{
string key=string.Join(“,”行);
if(rowMap.ContainsKey(key)==false)
{
添加(键,行);
}
}
var result=rowMap.Values.ToList();
@AndriyHoren…是的,这将删除列表中重复的列表。试试看。对,因为你会选择group@AndriyHoren...Yes这将删除列表
中重复的列表
。试试看。好的,因为您将选择组,所以您可以使IEqualityComparer
与自定义List
的IEqualityComparer
配合使用List
的自定义IEqualityComparer