如何在C#中将二维对象数组转换为二维字符串数组?

如何在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

我有一个称为“值”的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
        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#中许多其他类的基本类。请参见此处