我有一個list<message>
包含類型Guid
和DateTime
(以及其他屬性)的屬性。我想擺脫該列表中Guid
和DateTime
相同(除一個之外)的所有項目。會有時候,這兩個屬性是相同的列表中的其他項目,但其他性能會有所不同,所以我不能只用.Distinct()
選擇不同的列表中的兩個屬性
List<Message> messages = GetList();
//The list now contains many objects, it is ordered by the DateTime property
messages = from p in messages.Distinct( what goes here?);
這就是我現在所擁有的,但是看起來,就必須有一個更好的辦法
List<Message> messages = GetList();
for(int i = 0; i < messages.Count() - 1) //use Messages.Count() -1 because the last one has nothing after it to compare to
{
if(messages[i].id == messages[i+1}.id && messages[i].date == message[i+1].date)
{
messages.RemoveAt(i+1);
{
else
{
i++
}
}
http://stackoverflow.com/questions/489258/linq-distinct-on-a-particular-property – Shyju 2012-08-04 18:39:38
感謝。我不知道爲什麼當我搜索時我找不到。 – user1304444 2012-08-04 19:34:29
我很高興喬恩的答案適合你。請注意:您的「當前使用的方法」不會編譯,並且(修復編譯錯誤之後)它不能在所有情況下工作 - 取決於元素的順序,您會得到不同的**(錯誤)**結果(畢竟,你只是將相鄰元素相互比較)。 – Adam 2012-08-04 19:59:39