根据另一个列表项值向列表项添加值

时间:2013-11-12 02:21:17

标签: c# asp.net-web-api object-construction

我正在使用此代码在C#中使用来自csv文件获取数据的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 SampleDataGroup
        (
            (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();
}

我想将照片分配到(string)data.PhotoUrl,,具体取决于Name

例如:如果Name是“Car”,我希望为其分配PhotoUrl“Assets / Images / car.jpg”。如果列表Name中的项目是“船只”,请将其PhotoUrl分配给“Assets / Images / boat.jpg”。

图片不包含在网络API供稿的CSV文件中。

列表中的多个项目具有相同的Name,但具有相同Name的所有项目将共享相同的已分配图像。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

info中的new info是什么?这是你的一类吗?如果是,它是否继承了您输入列表的SampleDataGroup类型?如果是,并且您使用构造函数为其分配值,则使用

data.PhotoUrl = string.Format("Assets/Images/{0}.jpg", data.Name)

如评论中所述,if/else执行此操作将是一种自杀。如果不是现在,那么当你决定扩张时肯定会。