遍历List<Tab_Station> stationList,把不同的保存到另一个列表里,类似下面
ArrayList al = new ArrayList();
bool flag = true;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string un = ds.Tables[0].Rows[i]["UserName"].ToString();
//输出一个值保存就保存到列表中 每次判断输出的值列表中是否已经存在
if (al.Count > 0)
{
for (int j = 0; j < al.Count; j++)
{
if (un == al[j].ToString())
{
flag = false;
break;
}
else
{
flag = true;
}
}
}
if (flag == true)
{
al.Add(un);
}
}
for (int k = 0; k < al.Count; k++)
{
Response.Write(al[k].ToString()+"<br/>");
}
这样怎么样
List<TabStation> list = new List<TabStation> {
new TabStation(1,"标题1"),
new TabStation(2,"标题2"),
new TabStation(3,"标题3"),
new TabStation(4,"标题3"),
new TabStation(5,"标题3"),};
var resultList = (from l in list
group l by l.Name into g
select new { name = g.Key }).ToList();
this.comboBox1.DataSource = resultList;
this.comboBox1.DisplayMember = "name";
name 是什么?字段、属性。。。。。
@guosongORxiaosong: name是属性名称
@会长: 我试过了,不行。但是,还是谢谢哈
@guosongORxiaosong: 提示什么呀?
@会长: 没有提示什么,也没有任何数据显示。后来问同事解决了,谢谢会长
用Linq在表示层中过滤掉也可以的。
Linq这个东西就简单的了解过,不知道怎么做
this.cboS_River.ItemsSource = stationList.Distinct(new StationInfoComparer()).ToList();
public class StationInfoComparer : IEqualityComparer<Tab_Station_AllInfo_Info>
{
public bool Equals(Tab_Station_AllInfo_Info x, Tab_Station_AllInfo_Info y)
{
return x.S_River.Equals(y.S_River);
}
public int GetHashCode(Tab_Station_AllInfo_Info obj)
{
return obj.ToString().ToLower().GetHashCode();
}
}