从您的评论中:
在 ASP.NET 表单上,我有一个名为 customerCheckL 的 CheckBoxList。加载数据文件后,代码应使用不同客户名称的列表填充 customerCheckL.Items。我怎么做?customerCheckL.DataSourceID = ???
这更有意义。您可以实现一个EqulityComparer<transactions>
按客户进行比较的类:
public class TransactionCustomerComparer : IEqualityComparer<transaction>
{
public bool Equals(transaction x, transaction y)
{
if (x == null || y == null) return false;
return x.customerName == y.customerName;
}
public int GetHashCode(transaction obj)
{
if (obj == null) return int.MinValue;
return obj.customerName.GetHashCode();
}
}
(请注意,您可以在所有Enumerable
允许传递自定义比较器的方法中使用此方法)
然后你可以使用Distinct
来获得一个唯一的列表。 您只需要设置DataSource
,DataTextField
和 .DataValueField
DataBind
CheckBoxList
var customerComparer = new TransactionCustomerComparer();
customerCheckL.DataSource = transactions.Distinct(customerComparer);
customerCheckL.DataTextField = "customerName";
customerCheckL.DataValueField = "transactionNum";
customerCheckL.DataBind();