首页 新闻 会员 周边 捐助

c# 数组

0
悬赏园豆:5 [已解决问题] 解决于 2014-05-20 16:03

有一个数组,里面存着很多人的名字,但里面记录的人的名字有重复,我想知道里面都包含谁,这个c# 代码该怎么写?

中华神的主页 中华神 | 初学一级 | 园豆:48
提问于:2014-05-20 11:04
< >
分享
最佳答案
0

string[] s = { "aaa", "bbb", "aaa", "bbb", "ccc", "aaa" };
string[] q = s.Distinct().ToArray();

收获园豆:5
nianhua11 | 小虾三级 |园豆:736 | 2014-05-20 14:11
其他回答(4)
0

linq查询,groupby名字where(count>1)

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-20 11:08

   没用过linq   数组中重复的名字有很多,不重复的名字也有很多,这个方法可以实现吗

支持(0) 反对(0) 中华神 | 园豆:48 (初学一级) | 2014-05-20 11:14

@中华神:  不会有问题的.虽然自己写算法也能实现,但这个操作比较块.

自己写算法的话,就定义一个list,包括一个用户名,跟计数.

遍历原数组,往新list里添加,存在就加计数.

遍历完成后再遍历list里面计数大于1的就是你要的了.

其实逻辑上跟上面的linq是一样的

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-20 11:20
0


string[] a = new string[] { "张三", "李思", "王五", "赵六", "李建东", "甘家口", "南奎丽", "oodi", "顶峰网", "南阳佳腾" };
string[] c = new string[] { "张三", "李思", "王五", "赵六" };
string b = string.Empty;
foreach (var item in a)
{
if (c.Contains(item))
{
b += item + ",";
}
}
label3.Text = b;

FortuneGril | 园豆:300 (菜鸟二级) | 2014-05-20 11:20
0

string[] query=list.Group(g=>g).Where(c=>c.Count()>1).Select(s=>s.First()).ToArray();

Qlin | 园豆:2403 (老鸟四级) | 2014-05-20 11:27
0

3L正解

刘宏玺 | 园豆:14020 (专家六级) | 2014-05-20 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册