来自代码端C#的数据表筛选器
本文关键字:数据表 筛选 代码 | 更新日期: 2023-09-27 17:59:02
我有一个DataTable,我通过从用户上传CSV文档获得它,它有列、行,比如:
Email Age Team
x@x.com 25 BarcelonaFC
y@y.com 32 BesiktasJK
z@z.com 18 Napoli
y@y.com 19 Boca Juniors
x@x.com 36 Internazionale
在将该数据表插入数据库之前,我需要对其进行筛选。电子邮件列应该是唯一的。所以我需要过滤那个数据表,这样我就可以消除2行。我不想使用LINQ,但如果它是唯一的解决方案,它是可以的
Email Age Team
x@x.com 25 BarcelonaFC
y@y.com 32 BesiktasJK
z@z.com 18 Napoli
您可以创建一个包含电子邮件地址的HashSet<string>
,然后在表中向后循环,将每一行的电子邮件地址添加到哈希集,如果已经存在(如果Add
返回false),则删除该行。
您可以尝试这样的方法。。。。
var dt = new DataTable();
dt = yourCurrentDataTable.DefaultView.ToTable(true, "Email", "Age", "Team");
您可以使用Dictionary:
首先,你可以创建一个简单的类:
class Data
{
public int Age;
public string Team;
}
之后,您可以将数据插入字典:
Dictionary<string, MyData> dic = new Dictionary<string, MyData>();
foreach(DataRow row in YourDataTable)
{
if(!dic.ContainsKey(row[.. email ..]))
{
dic.Add(..., ...);
}
}
现在你的字典准备好了。。。