首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 筛选有关问题提问

2012-04-25 
C# 筛选问题提问从数据库中 select 到一张表列1 列2aa-1aa-2cc-2aa-3cc-1aa-5bb-3cc-1bb-2bb-1我想实现,将

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

C# code
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;    ...//你可以处理,已经归类放入数组了}
[解决办法]
探讨

天哪 什么时候能够我楼上的代码 总是那种似懂非懂的感觉

[解决办法]
dim list as new dictionary(of string,list(of string))

循环数据库数据
if list.ContainsKey("列1") then
list("列1").add("列2")
else
list("列1")=new list(of string)
list("列1").add("列2")
end
[解决办法]
如果你要转换成字典,用linq还是一行。
C# code
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());
[解决办法]
探讨

感觉 rayyu1989 的代码很精悍哦。

不知道是否可以。

dim list as new dictionary(of string,list(of string))
是下面这个意思吗??
dictionary<string s,list> list = new dictionary<string s,list>();

[解决办法]
var source = from temp in dt.AsEnumerable()
group temp by temp.Field<string>("列1") into g
select new
{
key = g.Key,
g,
values = g.Select(t => t.Field<string>("列2")).ToArray()
};
foreach (var t in source)
{
string[] str= t.values;
}

热点排行