从IEnumerable <string []>

时间:2015-12-18 15:43:55

标签: c# arrays ienumerable

你好我有这样的可枚举(当我调试程序时说它是IEnumerable。我不知道IEnumberable足够)。 :

      var result = from p in displayedParticipants
                    select new[] { 
                    p.Country, 
                    p.City,
                    p.SurveyStartDate.ToString("dd.MM.yyyy HH:mm"),
                    p.SurveyFinishDate.ToString("dd.MM.yyyy HH:mm"),
                    p.Device.ToString(),
                    p.IP.ToString(),
                    p.Longitude.ToString(),
                    p.Latitude.ToString(),                                                   
            };

我有一个索引数组,指示从该结果中选择哪个字段,即结果对象是String数组的列表,每个String数组包含这些字段。

string[] toShow = {0,1}. 

这意味着我只想获得第一和第三个字段(国家和城市)并删除所有其他字段。但IEnumerable不允许我删除任何操作。我该如何解决这个问题。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

IEnumerable不是列表或包含可以更改的内容的数组。 IEnumerable是可以枚举对象的东西。

但是您可以创建一个符合此IEnumerable的要求的列表(或数组):

string[][] yourResults = 
    result.Select(inner => new[]{inner[0], inner[1]}).ToArray();

答案 1 :(得分:0)

IEnumerableIEnumerable<T>是允许枚举序列的接口,因此它们不是可以添加或删除项目的列表。您可以使用其他查询:

List<string[]> list = result
    .Select(arr => toShow.Select(i => arr[i]).ToArray())
    .ToList();