JoB*_*oBo 1 c# linq lambda dictionary distinct
需要帮助才能仅根据 i.Code 选择/获取不同的条目。有重复项,因此我的表达式中出现错误“已添加具有相同键的项目。 ”
var myDictionary = dbContext.myDbTable
.Where(i => i.shoesize>= 4)
.OrderBy(i => i.Code)
.ToDictionary(i => i.Code, i => i);
Run Code Online (Sandbox Code Playgroud)
已尝试以不同的组合以及它们本身使用 Select 和/或 Distinct,但仍然遇到相同的错误
var myDictionary= dbContext.myDbTable
.Where(i => i.shoesize>= 4)
.OrderBy(i => i.Code)
//.Select(i => i)
//.Distinct()
.ToDictionary(i => i.Code, i => i);
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?C#
更新:如果有多个具有相同代码的对象,我只想将第一个对象(具有该特定代码)添加到 myDictionary 中。
您可以分组Code
并选择每个组中的第一项(相当于不同的):
var myDictionary = dbContext.myDbTable
.Where(i => i.shoesize >= 4) // filter
.GroupBy(x => x.Code) // group by Code
.Select(g => g.First()) // select 1st item from each group
.ToDictionary(i => i.Code, i => i);
Run Code Online (Sandbox Code Playgroud)
您不需要OrderBy
因为Dictionary
s 代表无序集合。如果你需要一本有序的字典,你可以使用SortedDictionary
.
归档时间: |
|
查看次数: |
786 次 |
最近记录: |