将[]转换为带有构造函数的List

时间:2013-12-29 08:19:36

标签: c# generic-list

我有一个类PlaceInfo,其中包含Result类型的私有字段。在PlaceInfo的构造函数中,我获取类型为Result的参数。

现在我的JsonConvert.DeserializeObject<SearchFind>(JsonData);语句在Result[]中为我提供了res.Results

我必须构建一个List<PlaceInfo>

下面给出了最简单的拇指逻辑方式(我目前正在使用)。

foreach (var serverPlace in res.Results)
    lstPlaces.Add(new PlaceInfo(serverPlace));

有人能建议我使用先进的构造吗?

2 个答案:

答案 0 :(得分:6)

您可以使用LINQ:

lstPlaces = res.Results.Select(x => new PlaceInfo(x)).ToList();

请记得在文件顶部添加using System.Linq

答案 1 :(得分:4)

您可以使用Linq Select和ToList方法

Result[] results = ...
List<PlaceInfo> places = results.Select(x => new PlaceInfo(x)).ToList();

Select方法是一个投影,将给定的函数应用于数组中的所有元素。 ToList方法获取结果IEnumerable并创建List