public static List<string>[] ColumnToList2(string table, List<string>[]data, NpgsqlConnection ncon)
{
using (ncon)
{
NpgsqlDataAdapter da = new NpgsqlDataAdapter("SELECT id, name FROM " + table + "", ncon);
DataSet ds = new DataSet();
da.Fill(ds, "" + table + "");
foreach (DataRow row in ds.Tables["" + table + ""].Rows)
{
//Testing area
//Console.WriteLine(row["id"].ToString());
//Console.WriteLine(row["name"].ToString());
data[0].Add(row[0].ToString());
data[1].Add(row[1].ToString());
}
}
return data;
}
再次问好!这次我想询问有关从value中搜索id的建议,然后将列存储在列表数组中。 当我在控制台中测试输入时,我想要的是什么,但是当在列表中输入后尝试查看时,没有我想要的resut(id name - list) 这里是变量的定义:
List<string>[] data_array = new List<string>[];
datu_array[0]=new List<string>();
datu_array[1]=new List<string>();
当我尝试通过控制台查看输出时,有错误 - 我没有定义数组大小
我希望你能提前帮助我解决这个问题。
答案 0 :(得分:4)
在实例化数组时,需要为数组指定一个大小:
List<string>[] data_array = new List<string>[2];
答案 1 :(得分:1)
我认为你实际上想要一个List<string[]>
而不是List<string>[]
。所以一个列表和每一行string[]
,所有列都作为字符串。
您可以使用LINQ:
List<string[]> data = ds.Tables[0].AsEnumerable()
.Select(row => row.ItemArray
.Select(col => col.ToString())
.ToArray())
.ToList();
但是为什么不留下DataTable
,这比列表有一些优势,例如您可以通过序号或名称访问的列。
答案 2 :(得分:1)
根据我对你的问题的理解,我建议你使用字典而不是字符串数组列表。