1
A
回答
2
這是未經測試,但我認爲這樣的事情應該工作:
var qry = from m in [YourDataSource]
group p by m.MOID into grp
select grp.OrderByDescending(a => a.RADI).First();
6
雖然張貼巴里的解決方案應該工作(有一些修復),這是次優的:你不需要對集合進行排序以查找具有最大字段值的項目。我寫了一個WithMax
擴展方法,它與指定的函數的最大值返回該項:
public static T WithMax<T, TValue>(this IEnumerable<T> source, Func<T, TValue> selector)
{
var max = default(TValue);
var withMax = default(T);
bool first = true;
var comparer = Comparer<TValue>.Default;
foreach (var item in source)
{
var value = selector(item);
int compare = comparer.Compare(value, max);
if (compare > 0 || first)
{
max = value;
withMax = item;
}
first = false;
}
return withMax;
}
它遍歷集合只有一次,這是比排序只是爲了得到第一個項目快得多。
然後,您可以使用它,如下所示
var query =
from row in table.AsEnumerable()
group row by row.Field<int>("MOID") into g
select g.WithMax(r => r.Field<int>("radi"));
0
這個作品與一個查詢!
public static T WithMax<T, TValue>(this IEnumerable<T> source, Func<T, TValue> keySelector)
{
return source.OrderByDescending(keySelector).FirstOrDefault();
}
相關問題
- 1. 基於最大列值從列表中選擇數據幀
- 2. 根據列的最大值選擇行
- 3. 基於列的最大值選擇相同的行只有選擇行之一,當最大等於
- 4. 基於列最大值的python選擇行
- 5. 選擇列的基礎上最大值
- 6. 使用列的大型數據集選擇特定的行值
- 7. 選擇基於列的值
- 8. 選擇基於列的值唯一行
- 9. 基於最小值的子集數據
- 10. 選擇最大值列的完整行
- 11. 選擇從表列最大值的行
- 12. SQL在一列中選擇基於最大值多列不同的行
- 13. Linq Select最大值數據集
- 14. 選擇最大值的行
- 15. 基於數據框中的行值選擇所有列大熊貓
- 16. 篩選基於最大值
- 17. 如何行選擇最大值和最小值的選定列
- 18. R-基於數據幀中列值的數據子集行數
- 19. 選擇列基於另一列與LINQ
- 20. 子集數據幀通過拆分列並選擇最小值和最大值
- 21. 選擇列最大的數據
- 22. MySQL:選擇數值最接近但大於給定值的行
- 23. Linq查詢選擇行,其中一列是一個最大值
- 24. 使用另一列的最大值選擇列的最大值
- 25. SQL到LINQ - >選擇最大值和最小值
- 26. Linq基於單列值獲取數據
- 27. 基於列選擇篩選數據
- 28. 基於另一列中選擇數據的子集
- 29. 基於不同列值選擇行
- 30. 選擇基於最新日期的值
應該OrderByDescending,不排序依據(或將返回該行與拉迪的最小值) – 2010-08-18 22:20:35
@Thomas - 感謝您指出了這一點 - 輕微錯字我的一部分。我已經修改了我的答案。 – codingbadger 2010-08-19 06:27:51