0
我想弄清楚如何從一個列表中選擇不同的值,然後將這些不同的值轉置到另一個列表。將一個列表的部分組合到另一個列表LINQ
我有這樣的:
型號:
public class Participant
{
public int UserId { get; set; }
public string Name { get; set; }
}
控制器代碼:
List<Participant> participants = new List<Participant>();
participants = project
.QuickView
.Select(x => new Participant { x.UserId, x.FullName})
.Distinct()
.ToList();
這似乎讓我在不同的值的用戶ID和全名,但不能在列表格式,我需要。我得到一個IEnumerable格式不是列表格式。我錯過了什麼讓LINQ將結果放入新的參與者列表?
您的代碼不編譯。你得到什麼格式?你想要什麼格式? – Blorgbeard
除非我遺漏了一些東西,這是[C#distinct不起作用]的標準情況(https://www.bing.com/search?q=c%23+distinct+does+not+work) - 覆蓋了很多這樣的問題 - 即http://stackoverflow.com/questions/1365748/distinct-not-working-with-linq-to-objects。如果不是這樣,請澄清該帖子,以便可以重新打開。 –
要將IEnumerable轉換爲列表,請使用ToList ()。另外:爲了使Distinct()能夠按需要工作,請確保完全按照您希望的方式實現平等:如果兩個參與者是相同的對象,或者對象的值相等,或用戶標識是唯一的,如果它們具有相同的用戶標識,則兩個參與者是相等的? –