将 LINQ except() 与两个不同类型的集合一起使用
我无法使用此处的示例,因为它是具体到提问者所使用的结构。
目前,我要去:
PropertyInfo[] props = this.GetType().GetProperties();
foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns)
if( !props.Any(p => p.Name == dataColumn.ColumnName) )
...
我更愿意在一行中写一些东西,例如:
foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns.Cast<DataColumn>.Except(props) )
...
有什么想法吗?
I can't use the example here because it's specific to the structure the asker was using.
Currently, I'm going:
PropertyInfo[] props = this.GetType().GetProperties();
foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns)
if( !props.Any(p => p.Name == dataColumn.ColumnName) )
...
I'd much rather have something in one line, such as:
foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns.Cast<DataColumn>.Except(props) )
...
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
或者稍微优化的版本(一如既往,取决于运行时的列数、属性等):
Or the slightly optimized version (as always, depending on the runtime number of columns, properties, etc, etc):
您必须使用投影(即
Select
)或一些可以计算为布尔值然后使用Where
的逻辑将其中一个转换为另一个。You will have to convert one to the other using a projection (i.e.
Select
), or some logic that can evaluate to a boolean then use aWhere
.