linq 如果列表中对象的ID与ID列表匹配,则将属性设置为true

n1bvdmb6  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(207)

我试图用预先选择的选项填充一个列表。我用一个SelectListItem列表填充这个列表,这些列表允许你将它们的“Selected”属性设置为true。
但是,如果选择列表项的值(选项的id)与使用linq选择的选项的id列表匹配,我想将属性设置为true。
我相信这会得到每个与ID列表相匹配的对象,但是我不确定我现在如何选择每个项目并将其“Selected”属性设置为true。我知道我可以将其设置为列表,然后循环列表,将值设置为true,然后返回该列表,但是如果可能的话,我更喜欢在一行中完成。

  1. public List<SelectListItem> StorageFormats { get; set; }
  2. StorageFormats = await _storageFormat.GetStorageFormatSelectList();
  3. StorageFormats = StorageFormats
  4. .Where(x => _availabilityFormatMap
  5. .GetAvalabilityStorageFormat(id)
  6. .Select(y => y.ID)
  7. .ToString()
  8. .Contains(x.Value))
  9. .ToList();

字符串

63lcw9qa

63lcw9qa1#

我认为有两种方法可以做到这一点。
1.通过列表。ForEach:-

  1. StorageFormats.ForEach(x => x.Selected = true);
  2. // change it according to your class structure.

字符串
1.通过扩展:

  1. public static class ExtensionMethods
  2. {
  3. public static void SetSelectedForEach(this IEnumerable<StorageFormat> source, bool value)
  4. {
  5. foreach (var item in source)
  6. {
  7. item.Selected = value;
  8. }
  9. }
  10. }
  11. // change according to your namespace and class structures.


然后像这样使用

  1. StorageFormats.SetSelectedForEach(true);

展开查看全部

相关问题