我有一个这样的名单:如何使用LINQ做SELECT UNIQUE?
Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange
我试图做一个选择唯一使用LINQ,即我想
Red
Brown
Yellow
Green
Orange
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name;
然后我把它改为
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name.Distinct();
与没有成功。第一个select
获取所有颜色,那么如何修改它以仅获取唯一值?
如果有更好的方法来构造这个查询,那么很高兴去那条路线。
我该如何去编辑它,这样我就可以拥有.OrderBy(“列名称”),即按字母顺序按颜色名称,所以名称属性?
我不断收到一条消息:
类型参数不能从使用推断。尝试明确指定类型参数。
谢谢,这是正确的答案。有人可以解释.OrderBy()参数中的内容。你有名字=>名字。这个名字来自数据库中的列名吗?因为我们有'dbo.Color.Name'然后只是'name => name'这暗示我不是列名?奇怪它也正确排序,如果我只是将其更改为'.OrderBy(a => a)' – baron 2010-08-19 23:29:22
变量的名称是不相关的。它只是{传入函数的对象} => {用于排序的对象}。由于我们已经完成了Select,因此集合中唯一被排序的是名称。 – 2010-08-20 11:35:53
谢谢@JamesCurran,你的解决方案对我非常有帮助。 – Ron 2013-04-04 17:11:14