如何避免texbox中数据集的重复值

时间:2016-09-30 05:55:07

标签: c# asp.net c#-4.0

我写了一个类似下面的函数

private void PrepUpdate()
{
    LicenceBL lbl = new LicenceBL(0);
    DataSet lds = new DataSet();
    lbl.FetchForEdit(lds, AgentId,BrokerId);
    string output ="";
    for (int i = 0; i < lds.Tables[0].Rows.Count; i++)
    {
        output = output + lds.Tables[0].Rows[i]["LicenceTypesNames"].ToString();
        output += (i < lds.Tables[0].Rows.Count) ? "," : string.Empty;
    }
    txtLicenseType.Text = output;
}

LicenceTypesNames获取所有dataset并将其与&#39;,&#39;分开。然后将它们放在文本框中。如果dataset包含licencetypesnames列的重复条目,则它们也会插入文本框中...请帮助我!!!

3 个答案:

答案 0 :(得分:2)

这是Linq方法

var ltnList = lds.Tables[0].Rows.Cast<DataRow>()
                                .Select(x => x.Field<string>("LicenceTypesNames"));
txtLicenseType.Text = string.Join(",", ltnList.Distinct());

答案 1 :(得分:1)

使用HashSet<string>,它只采用Add方法

中的唯一值
private void PrepUpdate()
{
    LicenceBL lbl = new LicenceBL(0);
    DataSet lds = new DataSet();
    lbl.FetchForEdit(lds, AgentId,BrokerId);

    HashSet<string> values = new HashSet<string>();

    for (int i = 0; i < lds.Tables[0].Rows.Count; i++)
    {
        values.Add(lds.Tables[0].Rows[i]["LicenceTypesNames"].ToString());
    }

    txtLicenseType.Text = string.Join(", ", values.ToList());
}

答案 2 :(得分:0)

  

您可以使用dataview;

DataView dv = new DataView(lds.Tables[0]);
DataTable dtLtn = dv.ToTable(true, "LicenceTypesNames");
  然后,

dtLtn将由LicenceTypesNames的不同值组成   你可以用同样的方式使用for循环