我想知道,如果它可以修復這一說法MVC剃刀LINQ聲明相同的ID。它包括firstordefault和where子句
我想從它們中的一個獲得來自每個具有相同TotalScore值的每個ID的5個對象的TotalScore值。
使用FirstOrDefault可以給我集合中的第一個值,不管競爭對手的ID是什麼。
所以我的問題是,我在這裏錯過什麼讓這個聲明正常工作。
我想知道,如果它可以修復這一說法MVC剃刀LINQ聲明相同的ID。它包括firstordefault和where子句
我想從它們中的一個獲得來自每個具有相同TotalScore值的每個ID的5個對象的TotalScore值。
使用FirstOrDefault可以給我集合中的第一個值,不管競爭對手的ID是什麼。
所以我的問題是,我在這裏錯過什麼讓這個聲明正常工作。
如果我正確地理解了這個問題,我想你想要的是Distinct
而不是Where
和Select
而不是FirstOrDefault
最後。
@Model.OrdinalDataList.Distinct().Select(x => x.TotalScore)
注意:未經測試!
如果不工作,因爲有中的對象更多的屬性,那麼你可能需要做一個Select
的Distinct
之前只獲取ID
和TotalScore
性能的投影,然後做最後Select
得到公正TotalScore
。
我很困惑,爲什麼你有相同的數據在列表中的5倍,但這應該得到的第一個項目的TotalScore與匹配對手ID列表:
var score = @Model.OrdinalDataList.FirstOrDefault(s => s.CompetitorId == c.Id).TotalScore;
這看起來像它按ID進行過濾。然後,您從第一個匹配的ID中獲取TotalScore值。從描述中不完全清楚它應該做什麼。一些示例輸入和所需的輸出將有所幫助。你說它基本上忽略了Where子句? – 2015-02-11 22:43:11
我不明白 - >'我想從每個對象的TotalScore值中選擇一個,每個對象的TotalScore對於每個ID都有相同的值。' – itsme86 2015-02-11 22:44:13
所以......你想從50個對象的集合到10個對象的集合,假設有10個具有相同ID的5個對象集合? TotalScore在每組5個不同或相同?請顯示一個示例數據集以幫助我們理解。 – TLS 2015-02-11 22:45:42