[英]Getting distinct objects from a list
編輯:問題不在於不同的方法,而在於標題的編碼方式。 與 StringComparison.InvariantCultureIgnoreCase 比較返回 true。 問題關閉。 這是我的代碼:
var b = ret.DistinctBy(x => new { x.Title, x.Type }).ToList();
當我用我的輸入運行這條線時,我得到了這個。 我想根據標題和類型消除重復項。 你能告訴我我哪里出錯了嗎? 根據我的比較,這兩個對象不是相同的嗎?
謝謝
編輯:做了更多的調試。 名字好像不一樣。
var z = ret[0].Title == ret[1].Title;
用文本比較器檢查。 這是相同的。 任何想法為什么? 我從 Kindle 閱讀了 MyClippings。 將測試他們是否以不同的方式對 Title 進行編碼。
您能否分享更多代碼,即使用下面我的示例的類可以正常工作:
public class Test {
public string Title {get;set;}
public Type Type {get;set;}
}
public enum Type {
Kindle
}
public static void Main()
{
var ret = new List<Test> {
new Test {
Title = "Book A",
Type = Type.Kindle
},
new Test {
Title = "Book A",
Type = Type.Kindle
}
};
var b = ret.DistinctBy(x => new { x.Title, x.Type }).ToList();
b.ForEach(x => Console.WriteLine(x.Title));
}
輸出:
Book A
可運行版本: https : //dotnetfiddle.net/gi8z7j
如果您將第二Book A
更改為Book B
它將輸出:
Book A
Book B
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.