来自代码端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

来自代码端C#的数据表筛选器

您可以创建一个包含电子邮件地址的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(..., ...);
  }
}

现在你的字典准备好了。。。