0

我正在使用此代码在 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是“汽车”,我希望它被分配PhotoUrl“资产/图像/汽车.jpg”。如果列表中的项目Name是“Boat”,则将其分配PhotoUrl给“Assets/Images/boat.jpg”。

图像不包含在 Web api 提供的 CSV 文件中。

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

我该怎么做呢?

4

1 回答 1

0

info里面有什么new info?是你的某个班级吗?如果是,它是否继承自SampleDataGroup您键入列表时使用的类型?如果是,并且您正在使用构造函数为其赋值,则使用

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

正如评论中提到的那样,这样做if/else将是自杀。如果不是现在,那么当您决定扩展时肯定会。

于 2013-11-12T07:01:07.483 回答