2012-03-07 54 views
1

我有一個C#列表類型,其中包含多個對象。閱讀{對象}列表中的字符串數據<object>

的結構將是

> -List<object> 
> --[0] object{object[]} 
> ---[0] = object {string} 
> ---[1] = object {string} 
> ---[2] = object {string} 
> --[1] object{object[]} 
> ---[0] = object {string} 
> ---[1] = object {string} 
> ---[2] = object {string} 

我不能找出如何提取每個陣列中的對象的字符串的內容。毫無疑問,這是一個新手的錯誤。

任何人都可以給我一個指針嗎?

+0

所以,如果我理解正確,你有一個列表其對象元素包含其元素實際上是字符串的對象的數組。我不明白你爲什麼不使用列表並保存所有醜陋的類型包裝。 – JamieSee 2012-03-07 22:57:44

回答

3

它看起來像List<object>確實只包含object[]其中的元素是string。請嘗試以下

List<object> source = ...; 
List<string> destination = new List<string>(); 
foreach (var obj in source) { 
    var array = (object[])obj; 
    foreach (var str in array) { 
    destination.Add((string)str); 
    } 
} 

如果LINQ可以,你可以做以下

List<string> destination = source 
    .SelectMany(x => ((object[])x).Cast<string>()) 
    .ToList(); 
+0

我有多傻。當然,它是一個對象內的嵌套對象...所以我需要兩個循環。謝謝 – Damo 2012-03-07 22:57:22

0
foreach (Object[] record in someList) { 
    foreach(Object item in record) { 
    Console.WriteLine(item.ToString(); 
    } 
} 
0

它看起來像你真正需要使用List<String[]>