我有以下课程:
public class IP_BankInfo
{
public App.BankType BankType { get; set; }
public string FileExtension { get; set; }
public List<IP_BankRows> Rows { get; set; }
}
public class IP_BankRows
{
public int RowIndex { get; set; }
public List<IP_BankBindings> Bindings { get; set; }
}
public class IP_BankBindings
{
public int ColumnIndex { get; set; }
public string ExpectedHeader { get; set; }
public string TransactionPropertyName { get; set; }
}
我正在尝试选择第一个IP_BankRows
,如果它包含任何Bindings
,其中TransactionPropertyName
不为空。这是我的尝试:
var firstItem = info.Rows.FirstOrDefault(n => n.Bindings.Where(x => !string.IsNullOrWhiteSpace(x.TransactionPropertyName)));
但在第二个条件(n=>n.Bindings...)
失败。我如何更改我的陈述?
答案 0 :(得分:1)
Where
返回IEnumerable<T>
,这不是布尔值。您需要使用的是.Any()
。
var firstItem = info.Rows.FirstOrDefault(n => n.Bindings.Any(x => !string.IsNullOrWhiteSpace(x.TransactionPropertyName)));
答案 1 :(得分:0)
知道了。
var firstItem = info.Rows.Where(
n => n.Bindings.Any(
x => !string.IsNullOrWhiteSpace(x.TransactionPropertyName)
)
).FirstOrDefault();