【发布时间】:2016-10-14 12:12:44
【问题描述】:
给定以下简单属性
Class Data
{
public string AA { get; set; }
public int BB { get; set; }
public int CC { get; set; }
...
}
和数据项列表
List<Data> Items = new List<Data>;
其中有一些示例数据
"2002", 3 ,5 ..
"2002", 3 ,5 ..
"2006", 4 ,2 ..
"2002", 3 ,5 ..
"2018", 9 ,7 ..
"2018", 5 ,5 ..
我需要找到字符串AA的不同值,所以我可以使用下面的代码
foreach(var itm = Items.Select(x => x.AA).Distinct()))
{
use itm ...
}
正确返回 itm = string "2002"、"2006" 和 "2018",但是我还需要恢复一些剩余的属性,例如 BB 等,用于 "Distinctly Selected" 项目,这也将与主要项目明显相关字段。
我尝试了很多方法来尝试实现这一目标,但都没有成功,因此如果有人能指出如何实现这一目标,我将不胜感激。
我试图恢复该项目的索引,返回基本项目,即在返回时有效的数据 列表中的所有项目。
实际上有数以万计的数据项,我需要恢复链接到不同数据项的字段。
我目前有一个可行的解决方案,我提取不同的项目,然后使用生成的列表搜索第一个匹配项目,然后恢复数据。它有效,但不是很优雅,因为我必须根据列表处理额外的时间。
请注意,此解决方案中没有 SQL 选项,提供的数据是 XML 或 JSON 解决方案必须是独立的 exe 文件
欢迎欢迎
谢谢
【问题讨论】:
-
您是否尝试过使用
Dictionary<string, List<Data>>,其中键为AA,值为具有相同AA的所有Data 对象的列表? -
根据过去的经验,我发现字典在被要求处理大量项目时非常慢。我练习可能有 500,000 个项目需要处理,但这是一个想法,谢谢。