返回首页


我要存储Objectnbsp; NBSP EX:
在[0,0],我想店"文件"和数字"1"
在[0,1],我想存储字"走出去"和数字"12"
我不能存储在数组[0,0]只有"走出去"或"12"
NBSP。
请如果我能做到,我怎么能访问[0,1]?

回答

评论会员:BillWoodruff 时间:2012/02/07
...编辑#1 ...

如果你真的想存储一个int和一个字符串,显示在原来的职位,来到你以后在与LanFanNinja交换意见,而不是两个字符串组成的一对,然后更改下面的代码使用Tuplelt; INT,stringgt ,"做正确的事"来定义两个查找功能:返回一个字符串,并返回一个int

所示的代码只用一对字符串低于交易。

...结束编辑#1 ...

它可以帮助你想一个Array [##N1,N2]像棋盘:在任何一个位置,"地址","行"指数,和"列"索引指定:可以有只有一个棋子。

它似乎在这里您正试图在两个字符串数组存储在每个位置。

这里你需要考虑其他的事情,在我看来,是您存储为字符串"对象",这意味着他们将是"盒装"当你存储它们,当你检索作为对象,你会投他们返回类型字符串作为字符串使用:这是昂贵的,而不是"最佳实践。"因此,这将不编译:
private object[,] objAry = new object[1,1];

 

objAry[0, 0] = "string1";

objAry[0, 1] = "string2";

 

object o1 = objAry[0, 0];

 

string newString = o1;
有几个备用的方式你可以去得到你想要在网,包括使用字典,但让我们来看看1简单的解决方案使用的元组对象在这里:。{C1的}如何你与你对字符串列表中添加一个新的tuple:
tupleEntryPlaceHolder = Tuple.Create("document1", "1");

 

tupleList.Add(tupleEntryPlaceHolder);
的你访问一个特定的项目内的元素,如项目#0在你的元组的列表:{体C3}为了使访问更容易一些,让我们的定义该函数:{C4的}现在,你可以访问像这样:{碳五}在这里你都将快速,并有效的使用,不会要求"拆箱",以获得您的存储字符串返回的解决方案成String类型,以便能够使用他们作为字符串。

正如我所提到的,这可能也可以使用其他的数据结构中的对象。NET,像Dictionarylt;字符串,stringgt,例如。 ,也许,别人对这个线程,将与其他类型的解决方案作出回应。

顺便说一下,有"原始",可处理多达8个项目的Tuple元组对象的形式,你甚至可以超出8个项目的Tuple tuple的定义内另一个坚持的Tuple元组。查看:[ ...编辑#2 ...

要牢记,在考虑是否要实施这样一个解决方案,与一本字典,一个元组,或个名堂,一个重要的考虑因素,是可能重复的键值的问题。

一个通用的词典,重复键加入一个项目,将导致运行时错误的类型'ArgumentException。

是的,你能砍相当于一本字典,允许重复键,如果你在CodeProject上搜索,你会发现一些讨论/关于这个的文章,但是,解决方案是复杂的,他们往往是"有争议的,"为你会看到,如果你看过的意见。

在-SharpCorner是一个有趣的两部分系列,"Dictionary类,允许重复键"由的Vulpes [{A}],重复键集合实体设计考虑提供一个很好的概述,和一个非常专业编码和注释的源代码例子。

对于一个tuple,增加一个项目使用相同的密钥将不会导致编译错误或运行时错误,但只会取代,一个重点项目的价值。

,最后,使用"旧"的数据结构,哈希表,你也有添加重复键错误的错误的问题,需要投看看回的结果,一些"原始"类型。

...结束编辑#2 ...
评论会员:游客 时间:2012/02/07
爱德华・卢:您好,谢谢的人,尝试改用Hashtable对象。供你参考:{A2}{A3的}的问候,爱德华