我有一个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
答案 0 :(得分:1)
您可以创建一个HashSet<string>
保留电子邮件地址,然后在表格中向后循环,将每行的电子邮件地址添加到哈希集,如果它已经存在(如果Add
返回false) ,删除该行。
答案 1 :(得分:0)
你可以尝试这样的事情......
var dt = new DataTable();
dt = yourCurrentDataTable.DefaultView.ToTable(true, "Email", "Age", "Team");
答案 2 :(得分:0)
您可以使用词典:
首先,您可以创建简单的类:
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(..., ...);
}
}
现在你的词典准备好了......