簡體   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