C# 读取带索引的ArrayList

C# 读取带索引的ArrayList,c#,asp.net,C#,Asp.net,我有一个类,它返回一个数组列表,但当我读取它时,我想在一个页面中写入值 我上过这门课: public ArrayList users(string table) { ArrayList list = new ArrayList(); foreach (DataRow item in com.Execute("select * from " + table + ";").Rows) {

我有一个类,它返回一个数组列表,但当我读取它时,我想在一个页面中写入值

我上过这门课:

        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>"));
    ...
}
loadUsersNewsletter lun=新的loadUsersNewsletter();
String[]myArr=(String[])lun.users(“新闻稿”).ToArray(typeof(String));
foreach(myArr中的对象o)
{
load.Controls.Add(新的LiteralControl(“+o+”+o+”);
...
}
如何通过索引或其他方式读取值,以避免重复值。
如果有其他解决方案,请告诉我。

尝试使用
Distinct
,类似以下内容:

foreach (var o in myArr.Distinct())
{
    load.Controls.Add(new LiteralControl("<tr><td>" + o + "</td><td>" + o + "</td></tr>"));
    ...
}
试试这个:

"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>"));
        ...
    }
String[]myArr=(String[])lun.users(“新闻稿”).ToArray(typeof(String));
列表内容=新列表();
foreach(myArr中的对象o)
{
if(Content.Contains(o.ToString()))
继续;
Content.Add(o.ToString());
load.Controls.Add(新的LiteralControl(“+o+”+o+”);
...
}

您应该更改
用户
方法,如:

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;
    }
公共列表用户(字符串表)
{
列表=新列表();
foreach(com.Execute中的DataRow项(“从“+table+”;”).Rows中选择*)
{
添加(新字符串[]{item[“id”].ToString(),item[“mail”].ToString(),
项[“数据”].ToString()});
}
退货清单;
}
以及:

loadUsersNewsletter lun=新的loadUsersNewsletter();
列出myArr=lun.users(“时事通讯”);
foreach(myArr中的字符串[]o)
{
load.Controls.Add(新的LiteralControl(“+o[0]+”“+o[1]
+“+o[2]+”);
}

如果我能在3中读取数组3,我就可以不重复地读取.list.Add(新字符串{item[“id”].ToString(),item[“mail”].ToString(),item[“data”].ToString()});这有一个错误:字符串不包含要删除的定义Add@DiogoSeveriano嗯?你确定吗?@DiogoSeveriano抱歉!在
新字符串之后忘记了
[]
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>"));
 }