按字母顺序排列C#列表

时间:2013-11-11 01:44:52

标签: c# visual-studio-2012 asp.net-web-api

我正在使用以下代码从Web Api获取数据并将其填充到列表中。

HttpClient client = new HttpClient();
    HttpResponseMessage response = await client.GetAsync("http://localhost:12345/api/items");

var info = new List<SampleDataGroup>();


            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();

               var item = JsonConvert.DeserializeObject<dynamic>(content);


                foreach (var data in item)
                {
                      var infoSect = new info
                            (

                                (string)data.Id.ToString(),
                                (string)data.Name,
                                (string)"",
                                (string)data.PhotoUrl,
                                (string)data.Description

                            );
                                 info.Add(infoSect);
                }
             }
            else
            {
                MessageDialog dlg = new MessageDialog("Error");
                await dlg.ShowAsync();
            }


            this.DefaultViewModel["Sections"] = info;

如何按Name按字母顺序排序?因此显示的结果是从A-Z的名称中排序的。

1 个答案:

答案 0 :(得分:2)

我建议你试试这个:

var sorted = info.OrderBy(i => i.Name);

这将返回排序数据,按照传递给OrderBy方法的表达式中选择的字段排序。字符串数据的默认比较将是字母排序,这应该足以满足您的需求。

如果您需要返回List以分配给DefaultViewModel [“Sections”],您可以这样做:

this.DefaultViewModel["Sections"] = info.OrderBy(i => i.Name).ToList();