int 数组中的 C# 字符串数组
C# String array inside int arrays
我需要 C#
中 integer arrays
和 string
的 array
[
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]]
]
我想不出任何正确的方法来解决这个问题。我来到下面的这个片段。
string[,] items = new string[10, 2];
for(int 1 = 0; i<10; i++){
items[i, 0] = "Item " + i;
items[i, 1] = new int[10];
}
如何获取我需要的数组?
您可以创建元组数组:
(string,int[])[] items = new (string,int[])[10];
for(int i = 0; i < items.Length; i++)
{
items[i] = ("Item" + i,new int[10]);
}
您可以通过 .Item1 和 .Item2 访问这些值:
Console.WriteLine(items[4].Item1); // will output "Item 4"
Console.WriteLine(items[4].Item2[4]); // will output the 4th value of the 4th array
为了进一步提高可读性,您可以创建自己的 class 并制作一个数组 class:
class Item
{
public string Name {get;set;}
public int[] Values {get;set;}
}
您可以像这样创建一个class
public class Test
{
public string Name { get; set; }
public int[] Array { get; set; }
}
List<Test> testList = new List<Test>();
for (int i = 0; i < 4; i++)
{
Test test = new Test
{
Name = "Item 1",
Array = new int[6]
};
for (int j = 0; j < 6; j++)
{
test.Array[j] = j + 1;
}
testList.Add(test);
}
foreach (var item in testList)
{
Console.Write(item.Name);
foreach (var arr in item.Array)
{
Console.Write("\t" + arr);
}
Console.WriteLine();
}
结果
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
使用字典。
Dictionary<string, int[]> myDictionary = new Dictionary<string, int[]>();
// Add Item:
myDictionary.Add("Item 1", new int[]{1,2,3,4,5,6});
请注意,如果您使用字典,键(字符串)必须是唯一的。
或使用元组:
Tuple<string, int[]>[] myTuples = new Tuple<string, int[]>[5];
myTuples[0] = new Tuple<string, int[]>("Item 1", new int[] { 1, 2, 3, 4, 5, 6 });
// Access string with: myTuples[0].Item1
// Access int[] with: myTuples[0].Item2
或者自 C#7.0 起您可以使用命名元组:
(string MyString, int[] MyIntArray)[] myTuples = new (string MyString, int[] MyIntArray)[5];
myTuples[0] = ("Item1", new int[]{1,2,3,4,5,6});
// Access string with: myTuples[0].MyString
// Access int[] with: myTuples[0].MyIntArray
我需要 C#
中integer arrays
和 string
的 array
[
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]],
["Item 1",[1,2,3,4,5,6]]
]
我想不出任何正确的方法来解决这个问题。我来到下面的这个片段。
string[,] items = new string[10, 2];
for(int 1 = 0; i<10; i++){
items[i, 0] = "Item " + i;
items[i, 1] = new int[10];
}
如何获取我需要的数组?
您可以创建元组数组:
(string,int[])[] items = new (string,int[])[10];
for(int i = 0; i < items.Length; i++)
{
items[i] = ("Item" + i,new int[10]);
}
您可以通过 .Item1 和 .Item2 访问这些值:
Console.WriteLine(items[4].Item1); // will output "Item 4"
Console.WriteLine(items[4].Item2[4]); // will output the 4th value of the 4th array
为了进一步提高可读性,您可以创建自己的 class 并制作一个数组 class:
class Item
{
public string Name {get;set;}
public int[] Values {get;set;}
}
您可以像这样创建一个class
public class Test
{
public string Name { get; set; }
public int[] Array { get; set; }
}
List<Test> testList = new List<Test>();
for (int i = 0; i < 4; i++)
{
Test test = new Test
{
Name = "Item 1",
Array = new int[6]
};
for (int j = 0; j < 6; j++)
{
test.Array[j] = j + 1;
}
testList.Add(test);
}
foreach (var item in testList)
{
Console.Write(item.Name);
foreach (var arr in item.Array)
{
Console.Write("\t" + arr);
}
Console.WriteLine();
}
结果
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
Item 1 1 2 3 4 5 6
使用字典。
Dictionary<string, int[]> myDictionary = new Dictionary<string, int[]>();
// Add Item:
myDictionary.Add("Item 1", new int[]{1,2,3,4,5,6});
请注意,如果您使用字典,键(字符串)必须是唯一的。
或使用元组:
Tuple<string, int[]>[] myTuples = new Tuple<string, int[]>[5];
myTuples[0] = new Tuple<string, int[]>("Item 1", new int[] { 1, 2, 3, 4, 5, 6 });
// Access string with: myTuples[0].Item1
// Access int[] with: myTuples[0].Item2
或者自 C#7.0 起您可以使用命名元组:
(string MyString, int[] MyIntArray)[] myTuples = new (string MyString, int[] MyIntArray)[5];
myTuples[0] = ("Item1", new int[]{1,2,3,4,5,6});
// Access string with: myTuples[0].MyString
// Access int[] with: myTuples[0].MyIntArray