【发布时间】:2019-05-01 19:27:13
【问题描述】:
我必须查看我的 IEnumerable 中的第一个元素是否等于某个值,如果是,我必须将其更新为新列表
我正在尝试使用类似的东西
if (sequence.First().Equals(value))
{
return newValues.Prepend(sequence.Skip(1));
}
因为我必须是最通用的,但是当我尝试测试这个调用时它只返回 null
【问题讨论】:
-
IEnumerable 不允许修改。
-
使用
newValues.Concat(sequence.Skip(1))之类的东西(Concat和Skip都是 Linq 扩展方法;如果有不清楚的地方,文档唾手可得) -
我可以改写吗?你想根据一个值测试一个序列,如果序列中的第一个项目是匹配的,你想将序列的 rest 附加到 separate 列表 -否则......不是吗?
-
是的,如果条件为真,我需要将新列表附加到旧列表中
-
@MattiaCaruso,您的问题说明您想将旧列表附加到新列表中。但是,现在您说要将新列表附加到旧列表。现在是哪一个?不能两者兼有……
标签: c# ienumerable enumerable