【发布时间】:2016-12-19 18:17:11
【问题描述】:
当存在类似于以下的对象时,我应该如何使用 LINQ 选择 distinct:
public class foo
{
public int id { get; set; }
public string lang { get; set; }
public string name { get; set; }
}
列表可能是:
id = 1, lang = "en", name="test1"
id = 1, lang = "fr", name="test2"
id = 1, lang = "de", name="test3"
id = 2, lang = "en", name="test4"
id = 2, lang = "fr", name="test5"
id = 3, lang = "en", name="test6"
id = 3, lang = "fr", name="test7"
id = 4, lang = "en", name="test8"
id = 5, lang = "de", name="test9"
我想运行 LINQ 以便它返回不同的 id 值,但是应该根据 lang 过滤不同的 id 值 例如"fr",应检索以下结果:
id = 1, lang = "fr", name="test2"
id = 2, lang = "fr", name="test5"
id = 3, lang = "fr", name="test7"
id = 4, lang = "en", name="test8"
id = 5, lang = "de", name="test9"
各位 LINQ 专家,理想情况下,我正在寻找使用 lambda 的查询,这将是一个很大的帮助。提前致谢。
【问题讨论】:
-
这听起来更像是简单的
Where而不是Distinct。 -
foos.Where(x => x.lang == "fr") -
感谢埃文和杰森。我已经更改了描述,如果没有“fr”记录,我需要检索其他记录。