2012-12-13 4 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

귀하의 질문에 쿼리 문자열 +로 시작하는 첫 번째 속성이 모든 행을 찾는 방법 인 경우, "[ 그러면 쿼리 문자열에 해당 문자를 추가하지 않는 이유는 무엇입니까? 이 같은

:

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

은 * 첫 번째 문자이고 * 다음 문자는 아닙니다. –

+0

@MattEllen 나는 지금 ... 내 대답을 시작한 이래로 질문이 명확 해졌다 : P – LukeHennerley

+0

@MattEllen 제 편집이 지금해야합니다. – LukeHennerley

관련 문제