C# 如何创建具有不同类型的数组

C# 如何创建具有不同类型的数组,c#,arrays,C#,Arrays,我需要数组来存储布尔和字符串对 MyType[,] array1 = { {true, "apple"}, {false, "orange"} }; // Later in my code. for (i = 0; i < array1.Length; i++) { if(array1[i, 0] == true) { Console.WriteLine(array1[i, 1]); } } MyType[,]array1={{true,“app

我需要数组来存储布尔和字符串对

MyType[,] array1 = { {true, "apple"}, {false, "orange"} };

// Later in my code.
for (i = 0; i < array1.Length; i++)
{
    if(array1[i, 0] == true)
    {
        Console.WriteLine(array1[i, 1]);
    }
}
MyType[,]array1={{true,“apple”},{false,“orange”};
//稍后在我的代码中。
对于(i=0;i
在不使用集合的情况下,如何在
C#
中获取上述内容?
如果不可能,我应该使用哪个集合?

数组不能有不同的数据类型。这是阵列的设计原则。相反,创建一个类/结构,然后创建该类的数组/列表。有以下几点,

class MyClass
{
bool flag;
string myStr;
}

List<MyCLass> myList=new List<MyClass>();
ArrayList arrList = new ArrayList(); //or use this option
class-MyClass
{
布尔旗;
字符串myStr;
}
List myList=新列表();
ArrayList arrList=新的ArrayList()//或者使用此选项

你应该能够使用c#中的
foreach
访问列表。

在普通数组中不能有两种不同的类型。你必须创建一个类/结构才能这样做。是的,可能重复。我曾想过使用列表,但我需要停止在数组或列表的最后一个值处循环,因为我需要对最后一项执行一些字符串操作。编辑:使用数组的原因是它的循环速度比列表或集合快。您可以通过使用
myList.Count
获得列表的大小,然后在运行
foreach
时为最后一个元素添加if子句。如果您担心性能,请使用ArrayList。相应地编辑了答案:)
ArrayList
?真正地我没有运行任何基准测试,但我几乎可以保证
ArrayList
的性能会更差,因为需要装箱/拆箱。最好使用
列表
或类对象的常规数组。@Tim oops。。您是对的,
ArrayList
将出现装箱/取消装箱的性能问题:|。现在,我想OP必须与
列表一起使用。