2012-12-13 86 views
-2

當前if語句在列中找到「開始」文本並獲取該行。我想知道:我如何能夠檢查字符串中的下一個字符是否是[?例如,這與StartsWith方法搜索數據表中的數據

foreach (DataRow r in queryDataTable.Rows) 
      { 
       if (r[0].ToString().StartsWith(queryString)) 
       { 
        dt.ImportRow(r); 
       } 
      } 
+0

究竟是什麼問題?我看不到一個「?」 – LukeHennerley

回答

0

你可以嘗試正則表達式:

foreach (DataRow r in queryDataTable.Rows) 
{ 
    bool match = Regex.IsMatch(r[0].ToString(),".{1}\[.*",RegexOptions.IgnoreCase | RegexOptions.Compiled); 

    if (match) dt.ImportRow(r); 
} 
1

如果你的問題是如何找到具有第一屬性的所有行開始與查詢字符串+了「[ 「那麼爲什麼不把該char附加到查詢字符串呢?

這樣的:

foreach (DataRow r in queryDataTable.Rows) 
    { 
     if (r[0].ToString().StartsWith(queryString + "[")) 
     { 
      dt.ImportRow(r); 
     } 
    } 
0
public bool PostConditionIsChar(DataRow dr, string query, char charToCheck) 
{ 
    string firstCol = dr[0].ToString(); 
    return firstCol.StartsWith(query) ? firstCol.Replace(query, "").Length > 0 && firstCol.Replace(query, "").First() == charToCheck : false; 
} 

使用

dt.Rows.Cast<DataRow>().Where(row => PostConditionIsChar(row, queryString, '[')).ToList().ForEach(rowToAdd => dt.ImportRow(rowToAdd)) 

這應該爲你做它。

+0

這是* first *字符,而不是* next *字符。 –

+0

@MattEllen我現在看到了...自從我開始回答以來,問題變得更加清晰:P – LukeHennerley

+0

@MattEllen我的編輯應該現在就做。 – LukeHennerley