繁体   English   中英

不同列表LINQ查询

[英]distinct list LINQ Query

试图在LINQ中返回一个不同的SubString列表。

这将返回列表,但有100个记录与子字符串。 我只想返回不同的列表。

var query = from b in db.Certificates
            select b.CertificateNumber.Substring(0,4);

ViewBag.BoxNumber = new SelectList(query.ToList());

我尝试添加不同的

select b.CertificateNumber.Substring(0,4).Distinct();

但它扔了

DbDistinctExpression需要一个集合参数。

你目前正在这样做的方式,它将尝试对每个证书编号的前四个字符做一个区别(删除重复的字符),然后返回所有结果。 您可能会收到错误,因为您使用的驱动程序无法以这种方式创建有效的SQL查询。

相反,在调用Distinct之前用括号括起查询的整个第一部分,如下所示:

var query = (from b in db.Certificates
             select b.CertificateNumber.Substring(0,4)).Distinct();

或者,使用方法语法而不是查询和方法语法的混合:

var query = db.Certificates
              .Select(cer => cer.CertificateNumber.Substring(0,4))
              .Distinct();

我知道了

ViewBag.BoxNumber = new SelectList(query.ToList().Distinct());
 var certificatesList = (from b in db.Certificates
                    select b.CertificateNumber.Substring(0,4)).Distinct().ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM