我有一个重复名称列表,我想获取没有重复名称的列表。
CSVCategories = from line in File.ReadAllLines(path).Skip(1)
let columns = line.Split(',')
select new Category
{
Name = columns[9]
};
var results = CSVCategories.GroupBy(x => x.Name)
.Select(g => g.FirstOrDefault())
.ToList();
我尝试使用以下循环查看元素并进行调试,但它仍然从列表中返回重复项,包括空值的空字符串:
foreach(var item in results)
{
Console.WriteLine(item.Name);
}
调用 Distinct 很可能不起作用,因为您的 Category 类没有正确实现 Equals 和 GetHashCode。
你有两个选择。正确重写 Equals 和 GetHashCode 方法,或使用 Hashset 检查 Name 是否尚未添加。
var uniqueNames = new Hashset<string>();
// Original select statement
CSVCategories = CSVCategories.Where(x => uniqueName.Add(x.Name)).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)