0

<List<List<string>>将 a 转换为字符串数组的最短方法是什么?

我尝试使用foreach循环,但在这种情况下,我的数组没有索引,所以我无法填满数组!?:-(

        foreach (List<string> list in myList)
        {
            foreach (string s in list)
            {
                Array[s] = list.ToArray;
            }
        }
4

6 回答 6

1

首先,您需要知道数组需要多大(这是因为 Java 中的数组不能是动态的;不能动态更改它们的大小):

int max = 0;
for(List<String> list : myList)
{
   max += list.size();
}
String[] array = new String[max];

然后使用你的 foreach 循环(请注意,它有不同的语法)和一个附加变量来保持当前索引:

int i = 0;
for(List<string> list : myList)
{
    for(String s : list)
    {
        array[i++] = s;
    }
}

另请注意如何String拼写。

于 2013-10-26T09:49:59.037 回答
1

首先,计算String[]数组的大小。

int size = 0;
for(List list : myList)
{
   size += list.size();
}
String[] array = new String[size];

然后,用每个列表中的所有字符串填充数组:

int i = 0;
for (List<String> list : myList) {
    for (String s : list) {
        array[i++] = s;
    }
}
于 2013-10-26T09:52:36.880 回答
0
List<List<String>> lisfOfList = new ArrayList<List<String>>();

List<String> result = new ArrayList<String>();
for(List<String> list : lisfOfList){
    result.addAll(list);
}

String[] s = result.toArray(new String[result.size()]);
于 2013-10-26T10:23:14.687 回答
0

像这样试试

List<String> list1 = new ArrayList<String>();

list1.add("aa");

list1.add("bb");

List<String> list2 = new ArrayList<String>();

list2.add("cc");

list2.add("dd");

list2.add("ee");

List<List<String>> arrL = new ArrayList<List<String>>();

arrL.add(list1);

arrL.add(list2);

List<String> strList = new ArrayList<String>();

for (List<String> 列表:arrL)

{ strList.addAll(list); }

字符串 []strArray = 新字符串 [strList.size()];

strList.toArray(strArray);

对于(字符串字符串:strArray)

{ System.out.println(string); }

于 2013-10-26T10:25:06.057 回答
0

利用for(int i=0; i<myList.size(); i++){ ... }

于 2013-10-26T09:36:59.973 回答
0

你可以使用这样的东西:

int i=0;
foreach (List<string> list in myList)
        {
            foreach (string s in list)
            {
                Array[i] = s;
                i++;
            }
        }
于 2013-10-26T09:42:34.680 回答