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