使用C#排除某些项目被添加到列表中

时间:2013-11-01 11:40:48

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

我从Web Api获取数据并使用c#将其添加到我的Windows商店触摸应用程序的列表中。我使用下面的代码工作正常。

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;

如何检查从网络API中检索到的数据,以排除Name中包含“测试”一词的列表中的项目。例如,具有Name“Soda Test”的项目不应包含在列表中。

因此,如果Name包含“Test”,请不要添加到列表中。

4 个答案:

答案 0 :(得分:2)

var items = item.Where( d =>!d.Name.Contains("Test")).ToList();
items.ForEach(i => info.Add(new info(){
     data.Id.ToString(),
     ...

}));    

答案 1 :(得分:2)

!你应该可以使用Linq来做到这一点。

 info.AddRange(item.Where(i => !i.Name.Contains("Test"))
                    .Select(i => {
                    new info
                        (

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

                        )}));

答案 2 :(得分:1)

var item = JsonConvert.DeserializeObject<dynamic>(content).Where(i=>!i.Name.Contains("Test"))

答案 3 :(得分:0)

试试这个:

if(!data.Name.ToString().Contains("Test"))
{
//Add Item to List
}