我有一個Datatable具有多個列和行,但我的焦點只在電子郵件地址列上。我也有一個電子郵件地址ArrayList。我需要遍歷並比較ArrayList中的電子郵件地址和Datatable,並將它們從數據表中刪除,前提是它們兩個都包含相同的電子郵件地址,或者創建不包含這些電子郵件地址的新Datatable或ArrayList。這怎麼可以在C#中完成?比較Datatable和ArrayList並刪除C#中的值
1
A
回答
0
我認爲ArrayList實現IEnumerable。 Datatable有一個asEnumerable(擴展?)方法。從那裏你可以寫一個linq查詢。也許是一個「從datatable左連接arraylist選擇哪裏arraylist不是空」類型的查詢。
好的,這可能是總的矯枉過正,但是自從我提起它之後,我會告訴你如何去做。
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable("TestTable");
dt.Columns.Add(new DataColumn("id",System.Type.GetType("System.Int32")));
dt.Columns.Add(new DataColumn("email",System.Type.GetType("System.String")));
ArrayList al = new ArrayList();
al.Add("[email protected]");
al.Add("[email protected]");
al.Add("[email protected]");
al.Add("[email protected]");
DataRow r1 = dt.NewRow();
r1["id"] = 1;
r1["email"] = "[email protected]";
dt.Rows.Add(r1);
DataRow r2 = dt.NewRow();
r2["id"] = 1;
r2["email"] = "[email protected]";
dt.Rows.Add(r2);
DataRow r3 = dt.NewRow();
r3["id"] = 1;
r3["email"] = "[email protected]";
dt.Rows.Add(r3);
DataRow r4 = dt.NewRow();
r4["id"] = 1;
r4["email"] = "[email protected]";
dt.Rows.Add(r4);
DataRow r5 = dt.NewRow();
r5["id"] = 1;
r5["email"] = "[email protected]";
dt.Rows.Add(r5);
var query = from row in dt.AsEnumerable()
join String a in al on row.Field<String>("email") equals a into ljtable
from a in ljtable.DefaultIfEmpty()
where a != null
select new { Email = row.Field<String>("email"), Checker = a == null ? "null" : a };
foreach (var v in query)
{
Console.WriteLine(String.Format("Email:{0} Left Join:{1}", v.Email, v.Checker));
}
Console.ReadLine();
}
}
+0
嗨史蒂夫 - 我不熟悉Linq。我仍然對我如何循環訪問數據表中的電子郵件地址值和Arraylist中的電子郵件地址值 – Josh 2010-08-30 13:16:22
相關問題
- 1. ArrayList比較和獲取共享值
- 2. datatable比較
- 3. Datatable比較行
- 4. C#,DataTable到ArrayList?
- 5. 比較DataTable列值與行篩選器中的枚舉C#
- 6. 比較ArrayList和2D數組
- 7. 循環和比較arraylist
- 8. 馬克並刪除重複比較
- 9. 比較2 ArrayLists並刪除重複項
- 10. 比較不同行,並刪除重複的值
- 11. Python - 如何比較多個字典並刪除重複的值?
- 12. PHP - 如何比較兩個數組並刪除重複的值
- 13. Python的比較和刪除文件
- 14. arraylist比較
- 15. Arraylist對比較?
- 16. Android ArrayList比較
- 17. 比較,並創造新的ArrayList
- 18. 在Word錶行和列中比較值以及刪除或合併單元格
- 19. 比較動態ArrayList與ArrayList!並刪除動態數組中不存在的元素
- 20. DataTable組合值和刪除源行
- 21. 從arraylist中刪除[和]
- 22. MySQL刪除日期和時間比較
- 23. 比較2列和刪除不匹配
- 24. 字符串比較和刪除元素
- 25. 比較和刪除api數據
- 26. PHP - array_diff所有相似的值進行比較和刪除
- 27. 比較兩種Arraylist並返回ID
- 28. Java ArrayList比較 - TicTacToe
- 29. ArrayList元素比較
- 30. 比較並刪除在jquery的陣列中的項目對象
什麼版本的.NET? .NET 1.1,因爲你仍然在使用ArrayList? – 2010-08-29 03:02:43
請發佈您迄今爲止編寫的代碼。人們通常不喜歡只爲你寫代碼。 – 2010-08-29 03:20:12
我所擁有的只是一個填充的ArrayList和一個填充的Datatable。我打算寫一個Do While循環,我猜只要Datatable不爲null,就會循環呢?在循環內,我會嘗試將Datatable中的每個值與ArrayList中的每個值進行比較? – Josh 2010-08-30 12:06:42