我想创建不同类型的二维数组,就像我可以添加到该数组中的两个值,其中一个是controlname,第二个是boolean值。
答案 0 :(得分:10)
你做不到。相反,您应该创建一个包含这两个属性的类,然后您可以创建该类型的数组:
public class MyClass
{
public string ControlName {get;set;}
public bool MyBooleanValue {get;set;}
}
public MyClass[] myValues=new MyClass[numberOfItems];
或者,正如Anders所说,如果其中一个属性用于执行查找,请使用字典。
答案 1 :(得分:5)
字典将适用于您当时尝试做的事情。
Dictionary<string, bool> controllerDictionary = new Dictionary<string, bool>();
设置值
if (controllerDictionary.ContainsKey(controllerName))
controllerDictionary[controllerName] = newValue;
else
controllerDictionary.Add(controllerName, newValue);
获取值
if (controllerDictionary.ContainsKey(controllerName))
return controllerDictionary[controllerName];
else
//return default or throw exception
答案 2 :(得分:4)
答案 3 :(得分:1)
如果要按控件名称查找/设置布尔值,可以使用Dictionary<string, bool>
。
答案 4 :(得分:1)
使用字典&lt; string,bool&gt;。 如果由于某种原因,你真的需要一个数组,请尝试object [,]并将其值转换为你想要的类型。
答案 5 :(得分:1)
另一种方法是创建一个类型为object的数组,然后将其添加到arraylist中。 以下是一些示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Collections.Generic;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
object[] o = new object[3];
// Add 10 items to arraylist
for (int i = 0; i < 10; i++)
{
// Create some sample data to add to array of objects of different types.
Random r = new Random();
o[0] = r.Next(1, 100);
o[1] = "a" + r.Next(1,100).ToString();
o[2] = r.Next(1,100);
ar.Add(o);
}
}
}
}
答案 6 :(得分:1)
这取决于您希望如何使用阵列。您想通过键或索引查找值吗?科纳米曼建议上课。但是有两种类型的类只不过是Dictionary<type of key, type of value>
。
如果要通过键获取值,可以使用字典。
像这样:
Dictionary<string, int> MyDict = new Dictionary<string, int>();
MyDict.Add("Brutus", 16);
MyDict.Add("Angelina", 22);
int AgeOfAngelina = MyDict["Angelina"];
现在字典的缺点是,你不能迭代它。订单未确定。你不能用MyDict[0].Value
来获得布鲁图斯的年龄(16岁)。
您可以使用
List<KeyValuePair<string, int>> MyList = new List<KeyValuePair<string, int>>();
迭代两个不同类型的2D数组,因为List
支持迭代。但话说回来,你无法通过MyList["Angelina"].Value
获得安吉丽娜的年龄,但你必须使用MyList[0].Value
。
但你也可以使用数据表。但是,使用其列初始化表需要更多的工作。
答案 7 :(得分:0)
“多维数组是一个数组: 所有维度中的所有元素都具有相同的类型“