C# 使用C将某些项目从添加到列表中排除
我正在从Web Api获取数据,并使用c将其添加到我的Windows store touch应用程序的列表中。我使用下面的代码,它可以正常工作C# 使用C将某些项目从添加到列表中排除,c#,visual-studio-2012,asp.net-web-api,C#,Visual Studio 2012,Asp.net Web Api,我正在从Web Api获取数据,并使用c将其添加到我的Windows store touch应用程序的列表中。我使用下面的代码,它可以正常工作 HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("http://localhost:12345/api/items"); var info = new List<SampleDataGroup>();
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;
如何检查从web api检索到的数据,以从名称中包含单词Test的列表中排除项目。例如,名称为Soda Test的项目不应包含在列表中
所以,若名称包含测试,不要添加到列表中 试试这个:
if(!data.Name.ToString().Contains("Test"))
{
//Add Item to List
}
!!您应该能够使用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
)}));
在将其添加到列表之前,您是否尝试过使用IF语句?您的最后一行基本上回答了您的问题上面的问题包含测试和选择没有填充信息列表…欢迎您:我很高兴帮助您。
var items = item.Where( d =>!d.Name.Contains("Test")).ToList();
items.ForEach(i => info.Add(new info(){
data.Id.ToString(),
...
}));
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
)}));