Dictionary结构中的key 不能重复,需要一个数据结构, 其中的 key 值可以重复,该使用什么数据类型呢?

zzboyabcd 2010-09-29 02:33:57
Dictionary<string, string> openWith = new Dictionary<string, string>();
openWith.Add("aa", "aaaa");
openWith.Add("aa", "bbbb");
openWith.Add("aa", "cccc");

上面的代码错误,因为 Dictionary结构中的key 不能重复,那么,我需要一个数据结构, 其中的 key 值可以重复,该使用什么数据类型呢?

非常 谢谢大家啊。
...全文
1139 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangxiaofelix 2010-09-29
  • 打赏
  • 举报
回复
首先Key一定是唯一的,如果你想要第一个可以重复,可以自己定义一个类型,改类型的一些属性可以相同,但不要所有的属性都相同,就能当做唯一的Key

class NewStudent
{

private Dictionary<Student, long> userList = new Dictionary<Student, long>();
public NewStudent()
{
List<Student> student=new List<Student>();
Student stu=new Student(){Name="张三",Id="001"};
Student stu2=new Student(){Name="张三",Id="002"};
Student stu3=new Student(){Name="李四",Id="003"};
student.Add(stu);
student.Add(stu2);
student.Add(stu3);
//ID,身份证
long ID=3301270000001;
foreach (Student s in student)
{
userList.Add(s, ID);
ID += 1;
}
}

}
class Student
{
private string name;//名字可以重复

public string Name
{
get { return name; }
set { name = value; }
}
private string id;//学号唯一

public string Id
{
get { return id; }
set { id = value; }
}
}
k0mmDu 2010-09-29
  • 打赏
  • 举报
回复
我英语很搓 上面item打成itme了
viena 2010-09-29
  • 打赏
  • 举报
回复
sorry ,有错,再来
public class TwoString
{
public TwoString(string s1, string s2)
{
String1 = s1;
String2 = s2;
}
public string String1 { get; set; }
public string String2 { get; set; }
}


List<TwoString> openWith = new List<TwoString>();
openWith.Add(new TwoString("aa", "aaaa"));
openWith.Add(new TwoString("aa", "bbbb"));
openWith.Add(new TwoString("aa", "cccc"));
k0mmDu 2010-09-29
  • 打赏
  • 举报
回复
            List<KeyValuePair<string, string>> l = new List<KeyValuePair<string, string>>();
l.Add(new KeyValuePair<string, string>("aa", "aa1"));
l.Add(new KeyValuePair<string, string>("aa", "aa2"));
l.Add(new KeyValuePair<string, string>("aa", "aa3"));
l.Add(new KeyValuePair<string, string>("bb", "bb1"));
l.Add(new KeyValuePair<string, string>("cc", "cc1"));
var result = l.Where((itme) => itme.Key == "aa");

这样lz试试看
viena 2010-09-29
  • 打赏
  • 举报
回复
public class TwoString
{
public string String1 { get; set; }
public string String2 { get; set; }
}


List<TwoString> openWith = new List<TwoString>();
openWith.(new TwoString("aa", "aaaa"));
openWith.Add(new TwoString("aa", "bbbb"));
openWith.Add(new TwoString("aa", "cccc"));

viena 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzboyabcd 的回复:]
我需要的第一个不是key,所以可以重复,而且需要2个string内容,所有不能使用 List<string>

非常谢谢大家。
[/Quote]
这样的话,建议定义一个实体类~
viena 2010-09-29
  • 打赏
  • 举报
回复
Dictionary<string, List<string>> openWith = new Dictionary<string, List<string>>();
List<string> list = new List<string>();
list.Add( "aaaa");
list.Add("bbbb");
list.Add("cccc");
openWith.Add("aa", list);
hotit 2010-09-29
  • 打赏
  • 举报
回复
Dictionary key 值是不能重复的

如果重复就没有意义了

建设使用泛型 List<T>
k0mmDu 2010-09-29
  • 打赏
  • 举报
回复
List<KeyValuePair<string,string>>
ajq1989 2010-09-29
  • 打赏
  • 举报
回复
SortList
zzboyabcd 2010-09-29
  • 打赏
  • 举报
回复
我需要的第一个不是key,所以可以重复,而且需要2个string内容,所有不能使用 List<string>

非常谢谢大家。

viena 2010-09-29
  • 打赏
  • 举报
回复
key 值可以重复那这个Key还有啥意义?
直接用List<string>好了
种草德鲁伊 2010-09-29
  • 打赏
  • 举报
回复
NameValueCollection
huwei12345 2010-09-29
  • 打赏
  • 举报
回复
key 都重复了,那你要key干嘛
damjmk2 2010-09-29
  • 打赏
  • 举报
回复
LIST<T>

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧