You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中通过键列表获取字典值属性的列表

解决方案

你可以用LINQ快速实现这个需求,代码简洁又直观:

var assetNames = selectedAssetGuidList
    .Select(guid => assetDict[guid].Name)
    .ToList();

解释

  • Select方法会遍历selectedAssetGuidList里的每一个Guid
  • 对每个Guid,直接从assetDict中取出对应的Asset实例,再获取它的Name属性
  • 最后用ToList()把结果转换成List<string>(假设Name是字符串类型)

如果担心实际场景中selectedAssetGuidList里可能存在不在assetDict中的Guid(虽然你说它是子集,但防一手总是好的),可以用两种方式避免抛出KeyNotFoundException:

方式一:传统循环+TryGetValue

var assetNames = new List<string>();
foreach (var guid in selectedAssetGuidList)
{
    if (assetDict.TryGetValue(guid, out var asset))
    {
        assetNames.Add(asset.Name);
    }
    // 可选:这里可以加个else分支处理找不到的情况,比如记录日志
}

方式二:LINQ过滤有效项

var assetNames = selectedAssetGuidList
    .Where(guid => assetDict.ContainsKey(guid))
    .Select(guid => assetDict[guid].Name)
    .ToList();

这种写法会自动过滤掉不在字典里的Guid,只保留能找到对应Asset的项。

内容的提问来源于stack exchange,提问作者Rik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:52:42