linq查询有问题,我想在这里选择使用这两个条件的列名称。一个是前缀,另一个是前缀的长度。c#中Linq查询问题
对于离我的山坳名woulb像123_i 123_j 123_k 123_L 123a_i 123a_j 123a_k 123a_l
我有两个前缀这里,一个是123等为123A。我的列名的选择应该是这样的:
前缀:123列:123_i 123_j 123_k 123_L
前缀:123A色谱柱:123a_i 123a_j 123a_k 123a_l
我对上述逻辑LINQ查询低于:
string[] columnnames = (from t in table.Columns.Cast<DataColumn>()
where (t.ColumnName.Contains(prefix) && prefix.Length == 3)
||(t.ColumnName.Contains(prefix) && prefix.Length == 4)
select t.ColumnName).ToArray();
上面的代码选择前缀“123”的所有列名称而不是(123_i 123_j 123_k 123_l)。我尝试了调试模式,并检查了where条件为false的第二部分。但它仍然选择所有。我可能会在这里错过小事!让我知道如何在Linq工作的OR。
谢谢!
应该不是你的前缀是123_,而不仅仅是123(相同的123a_)?你的前缀长度是4和5 – crunchy
脆脆 - 我不认为这是问题在这里。代码正确选择列名称,但条件在这里无法正常工作。 – Sri
要检查前缀,您还应该使用'StartsWith'而不是'Contains'。 – Dirk