如何在C#中将二维对象数组转换为二维字符串数组?
我有一个称为“值”的2D对象数组。我想将其转换为二维字符串数组。我该怎么做如何在C#中将二维对象数组转换为二维字符串数组?,c#,string,object,multidimensional-array,C#,String,Object,Multidimensional Array,我有一个称为“值”的2D对象数组。我想将其转换为二维字符串数组。我该怎么做 object value; //This is a 2D array of objects string prop[,]; //This is a 2D string 如果可能的话,我也想知道我是否可以将对象转换为 List<List<string>> 列表 直接。这就是你要找的吗 string[,] prop; //This is a 2D string L
object value; //This is a 2D array of objects
string prop[,]; //This is a 2D string
如果可能的话,我也想知道我是否可以将对象转换为
List<List<string>>
列表
直接。这就是你要找的吗
string[,] prop; //This is a 2D string
List<List<string>> mysteryList;
if (value is object[,])
{
object[,] objArray = (object[,])value;
// Get upper bounds for the array
int bound0 = objArray.GetUpperBound(0);//index of last element for the given dimension
int bound1 = objArray.GetUpperBound(1);
prop = new string[bound0 + 1, bound1 + 1];
mysteryList = new List<List<string>>();
for (int i = 0; i <= bound0; i++)
{
var temp = new List<string>();
for (int j = 0; j <= bound1; j++)
{
prop[i, j] = objArray[i, j].ToString();//Do null check and assign
temp.Add(prop[i, j]);
}
mysteryList.Add(temp);
}
}
string[,]prop//这是一个二维字符串
列表mysteryList;
如果(值为对象[,])
{
对象[,]对象数组=(对象[,])值;
//获取数组的上界
int bound0=objArray.GetUpperBound(0);//给定维度的最后一个元素的索引
int bound1=objArray.GetUpperBound(1);
prop=新字符串[bound0+1,bound1+1];
mysteryList=新列表();
对于(int i=0;i要回答您的第一个问题,您可以使用以下方法实现到2D字符串数组的转换:
List<string[]> objectValues = new List<string[]>
{
new[] { "1", "2", "3" },
new[] { "A", "B", "C" },
};
string[,] prop = ConvertObjectListArray(objectValues );
public T[,] ConvertObjectListArray<T>(IList<T[]> objectList)
{
int Length2 = objectList[0].Length;
T[,] ret = new T[objectList.Count, Length2];
for (int i = 0; i < objectList.Count; i++)
{
var array = objectList[i];
if (array.Length != Length2)
{
throw new ArgumentException
("All arrays must be the same length");
}
for (int i2 = 0; i2 < Length2; i2++)
{
ret[i, i2] = array[i2];
}
}
return ret;
}
List objectValues=新列表
{
新[]{“1”、“2”、“3”},
新【】{“A”、“B”、“C”},
};
字符串[,]prop=ConvertObjectListArray(objectValues);
公共T[,]ConvertObjectListArray(IList对象列表)
{
int Length2=对象列表[0]。长度;
T[,]ret=新的T[objectList.Count,Length2];
for(int i=0;i
您能添加一些代码来理解问题吗请确保您已阅读“如何提出一个好问题”。遵循这些指导原则将使其他人更容易回答,您得到的回答将更好,显示得更快。详细信息如下:我认为问题标题本身是不言自明的。我只需要一个函数将2D对象转换为2D字符串数组什么是“2D对象”“object”是C#中许多其他类的基本类。请参见此处