我从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”,请不要添加到列表中。
答案 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
}