-2

目前,if 语句在列中找到“开始于”文本并​​获取行。我想知道:我怎样才能检查字符串中的下一个字符是否是[?这例如与StartsWith方法

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

3 回答 3

1

如果您的问题是如何查找具有以查询字符串 +“[”开头的第一个属性的所有行,那么为什么不将该字符附加到查询字符串中呢?

像这样:

foreach (DataRow r in queryDataTable.Rows)
    {
        if (r[0].ToString().StartsWith(queryString + "["))
        {
            dt.ImportRow(r);
        }
    }
于 2012-12-13T09:59:50.977 回答
0

你可以试试正则表达式:

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

    if (match) dt.ImportRow(r);
}
于 2012-12-13T09:59:04.867 回答
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))

那应该为你做。

于 2012-12-13T10:04:28.603 回答