C# 筛选问题提问
从数据库中 select 到一张表
列1 列2
a a-1
a a-2
c c-2
a a-3
c c-1
a a-5
b b-3
c c-1
b b-2
b b-1
我想实现,将在“列1”中相同的 “列2” 的值都保存在一个数组里头
上表中的“列1” 有三个 不同项“a”“b”“c”; 列2 则是按列1 相同与否 分别到 a[],b[],c[] 数组中;
请问各位亲,我该怎么实现呢???
[解决办法]
先将表放到dataset里:
然后用个for 语句 if 判断 第一列=a
a[i] = 对应列
同理判断B,c就可以了吧
[解决办法]
循环、判断、向数据中写数据
[解决办法]
用Linq
var query = from y in (from x in DataTable.Cast<DataRow>() select new { a = x["列1"].ToString(), b = x["列2"].ToString() }) group y by y.a into g select new { key = g.Key, values = g.Select(z => z.b).ToArray() };foreach (var item in query){ string name = item.key; string[] values = item.values; ...//你可以处理,已经归类放入数组了}
[解决办法]
var query = from y in (from x in DataTable.Cast<DataRow>() select new { a = x["列1"].ToString(), b = x["列2"].ToString() }) group y by y.a into g select new { key = g.Key, values = g.Select(z => z.b).ToArray() };Dictionary<string, List<string>> list = query.ToDictionary(x => x.key, x => x.values.ToList());
[解决办法]