我有一個asp.net應用程序,現在我正在使用數據集進行數據操作。我最近開始將此數據集轉換爲List集合。但是,在一些地方它不起作用。一個是我使用舊版本datarow[] drow = dataset.datatable.select(searchcriteria)
。但是在List集合中,沒有可用於查找特定值的方法。有沒有什麼方法可以根據我的搜索條件選擇一些值?我想知道這是否可能。請幫幫我。列表中的選擇方法<t>集合
38
A
回答
118
好了,開始用List<T>
不有FindAll
和ConvertAll
方法 - 但更地道,現代的方法是使用LINQ:
// Find all the people older than 30
var query1 = list.Where(person => person.Age > 30);
// Find each person's name
var query2 = list.Select(person => person.Name);
你需要一個使用指令在你的文件使這項工作:
using System.Linq;
注意,這些不使用字符串來表示謂詞和項目 - 他們使用的代表,通常是從lambda表達式生成如上。
如果lambda表達式和LINQ是新的給你,我會建議你得到一本書涵蓋LINQ第一,如LINQ in Action,Pro LINQ,C# 4 in a Nutshell還是我自己C# in Depth。你當然可以可以只是從Web教程學習LINQ,但我認爲這是一個非常重要的技術,值得花時間去徹底學習它。
3
通用List<T>
擁有可用於過濾數據的Where<T>(Func<T, Boolean>)
擴展方法。
在你的情況與排陣:
var rows = rowsArray.Where(row => row["LastName"].ToString().StartsWith("a"));
如果您正在使用DataRowCollection
,你需要先投放。
var rows = dataTableRows.Cast<DataRow>().Where(row => row["LastName"].ToString().StartsWith("a"));
7
,你也可以嘗試
var query = from p in list
where p.Age > 18
select p;
3
試試這個:
using System.Data.Linq;
var result = from i in list
where i.age > 45
select i;
使用lambda表達式,請使用以下語句:
var result = list.where(i => i.age > 45);
相關問題
- 1. 從組合框中選擇時無法填充列表集合
- 2. 選擇集合 - 在選擇列表中顯示多個列值
- 3. 選擇列表集合中選擇的項目的角2 ngModel
- 4. 爲什麼ForEach方法僅在列表<T>集合中?
- 5. MVC下拉列表集合選擇
- 6. 自定義集合擴展列表<T>添加方法
- 7. 選擇表,其中列表<int>
- 8. 在Backbone.js集合中選擇一個模型的最佳方法?
- 9. 在HTML多選列表中選擇選項的最佳方法
- 10. 如何選擇集合而不是SqlToEntity中的集合集合?
- 11. 從列表中選擇<string>
- 12. 有效的方法來比較一組集合在Python中的集合列表
- 13. 在HQL中選擇集合
- 14. C#方法選擇選擇對象,而不是IEnumerable的<object>傳遞一個基本類型集合
- 15. 選擇字段的表單集合
- 16. jQuery的集合中選擇選項
- 17. Java - 集合選擇
- 18. 動態創建從集合中選擇列表
- 19. 從Cassandra列表集合中選擇索引
- 20. 如果不在集合中,然後添加到選擇列表
- 21. 如何合併列表中的項目<>集合C#
- 22. encodeURIComponent方法在選擇列表
- 23. 選擇正確的集合/列表爲我的倉庫
- 24. 集中選擇列表視圖
- 25. 將參數傳遞給text_method的集合選擇方法
- 26. 的LINQ:選擇在列表<string>
- 27. 迭代Cython中的對象列表/集合的最快方法?
- 28. 列表中的()方法<T>
- 29. 無法更新代碼中的列表框選定集合
- 30. 選擇組合的子集