读取带有索引的ArrayList
本文关键字:ArrayList 索引 读取 | 更新日期: 2023-09-27 18:00:38
我有一个返回数组列表的类,但当我读取它时,我想在页面中写入值。
我有这个类:
public ArrayList users(string table)
{
ArrayList list = new ArrayList();
foreach (DataRow item in com.Execute("select * from " + table + ";").Rows)
{
list.Add(item["id"].ToString());
list.Add(item["mail"].ToString());
list.Add(item["data"].ToString());
}
return list;
}
页面加载
loadUsersNewsletter lun = new loadUsersNewsletter();
String[] myArr = (String[])lun.users("newsletter").ToArray(typeof(string));
foreach (Object o in myArr)
{
load.Controls.Add(new LiteralControl("<tr><td>" + o + "</td><td>" + o + "</td></tr>"));
...
}
如何通过索引或其他方式读取值,以避免重复值?如果有其他解决方案,请告诉我。
您应该更改users
方法,如:
public List<string[]> users(string table)
{
List<string[]> list = new List<string[]>();
foreach (DataRow item in com.Execute("select * from " + table + ";").Rows)
{
list.Add(new string[]{item["id"].ToString(), item["mail"].ToString(),
item["data"].ToString()});
}
return list;
}
和:
loadUsersNewsletter lun = new loadUsersNewsletter();
List<string[]> myArr = lun.users("newsletter");
foreach (string[] o in myArr)
{
load.Controls.Add(new LiteralControl("<tr><td>" + o[0] + "</td><td>" + o[1]
+ "</td><td>" + o[2] + "</td></tr>"));
}
尝试使用Distinct
,类似于以下内容:
foreach (var o in myArr.Distinct())
{
load.Controls.Add(new LiteralControl("<tr><td>" + o + "</td><td>" + o + "</td></tr>"));
...
}
或者,如果你正在从数据库加载数据,你可能会考虑在数据库服务器上进行,即:
"select * from table"
试试这个:
"select distinct * from table"
如果您想消除重复,可以使用此代码。
String[] myArr = (String[])lun.users("newsletter").ToArray(typeof(string));
List<string> Content=new List<string>();
foreach (Object o in myArr)
{
if(Content.Contains(o.ToString()))
continue;
Content.Add(o.ToString());
load.Controls.Add(new LiteralControl("<tr><td>" + o + "</td><td>" + o + "</td></tr>"));
...
}