【发布时间】:2011-12-07 17:41:56
【问题描述】:
给定一个包含多行的 DataView,我想根据以下条件提取一行;
- 如果一行以某个字符串开头并以某个字符串结尾,则选择该行高于所有其他行
- 如果没有行满足第一个条件,则只需查找以特定字符串开头的行
- 如果我们无法匹配上述任何一项,则默认为 null。
我的快速尝试只是返回满足任何条件的第一行(如果 VB 语法不正确,请原谅,我不太熟悉);
Dim result = (From row In dv.Table.Rows() _
Where (GetString(row, "id").StartsWith(Me.ID.Substring(0, 3), StringComparison.OrdinalIgnoreCase) AndAlso _
GetString(row, "id").EndsWith(Me.ID.Substring(Me.RegisteredID.Length - 2, 2), StringComparison.OrdinalIgnoreCase)) OrElse _
GetString(row, "id").StartsWith(Me.ID.Substring(0, 3), StringComparison.OrdinalIgnoreCase) _
Select row).FirstOrDefault()
编辑:我的意思是补充一点,像https://stackoverflow.com/a/443055/685760 这样的东西看起来很有希望,但我认为它不适用于我的情况。如果我错了,请随时纠正我。
【问题讨论】:
标签: linq conditional