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

C# 如何获取IEnumerable类型的属性值并赋值给变量

实现方法

首先你需要先引入Linq命名空间,才能使用IEnumerable<T>对应的查询扩展方法:

using System.Linq;

List<T>的Find是自带的实例方法,而IEnumerable<T>没有内置该方法,所以需要借助System.Linq提供的扩展方法实现相同逻辑。


场景1:确认一定存在匹配的Attendance对象

First方法的行为和List的Find方法完全一致,会返回序列中第一个满足条件的元素,找不到就抛出异常,对应代码如下(已修正原代码中Cell应为Cells的笔误):

dgview.Rows[rowindex].Cells[cellindex].Value = myEnumerable.First(x => x.Date == datevalue).SHIFT;

场景2:可能不存在匹配的Attendance对象

如果你不确定是否有匹配项,建议用FirstOrDefault避免抛出异常,找不到匹配项时会返回引用类型的默认值null,再做空判断处理即可:

var targetAttendance = myEnumerable.FirstOrDefault(x => x.Date == datevalue);
dgview.Rows[rowindex].Cells[cellindex].Value = targetAttendance?.SHIFT ?? null;

注意事项

如果你使用的是延迟执行的IEnumerable实现(比如EF Core的查询结果),频繁调用查询方法会触发多次迭代,建议先通过ToList()/ToArray()转为内存集合缓存后再操作,避免额外的性能开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:24:04