繁体   English   中英

Arraylist的Arraylist中的字符串数组

[英]Array of string from Arraylist of Arraylist

我想从Arraylist的Arraylist创建一个字符串数组。

这是一个代码:

ArrayList MainList = new ArrayList();

ArrayList subList = new ArrayList();
subList.Add("A");
subList.Add("Apple");
MainList.Add(subList);

subList = new ArrayList();
subList.Add("B");
subList.Add("Banana");
MainList.Add(subList);

subList = new ArrayList();
subList.Add("C");
subList.Add("Caret");
MainList.Add(subList);

string[] AllList = { "A", "Apple", "B", "Banana", "C", "Caret" };
string[] OnlySome = { "Apple", "Banana", "Caret" };

我知道我们可以为每个循环使用它,但是如何使用LINQ Query获得AllList和OnlySome字符串数组?

谢谢

当然:

var allList = 
    MainList.
        Cast<ArrayList>().
        SelectMany(a => a.Cast<string>()).
        ToArray();

var onlySome = 
    MainList.
        Cast<ArrayList>().
        Select(a => 
            a.Cast<string>().
                Skip(1).
                First()).
        ToArray();

我不确定OnlySome的确切条件是什么,因此我认为有2种选择,

  • 选择所有其他元素(奇数索引,甚至位置) onlySome1
  • 选择其长度的任何字符串大于1 onlySome2

      var allList = (from al in MainList.ToArray() from s in (al as ArrayList).ToArray() select s as string).ToArray(); // if you want to select every other element var onlySome1 = allList.Where((s, index) => index % 2 == 1).ToArray(); // if you want to select all the strings with 2 or more characters. var onlySome2 = allList.Where(s => (s as string).Length > 1).ToArray(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM