繁体   English   中英

当值存在时,在DataTable列中搜索值将返回空

[英]Searching for a value in a DataTable column returns empty when the value exists

我的DataTable当前看起来像这样(名称= dtRecipient ):

在此处输入图片说明

使用以下LINQ语句,我试图查找RecipientId值等于“ marcus”的记录:

var found = dtRecipients.AsEnumerable().Where(row => String.Equals(row.Field<string>("RecipientId"), "marcus"));

但是没有返回结果,但是,正如您在图片中看到的那样,这里有“ marcus”的记录。 是什么赋予了?

没有空格或其他不可见字符?

您可以使用Trim删除前导和尾随空格(或换行符/制表符):

var found = dtRecipients.AsEnumerable()
   .Where(row => String.Equals((row.Field<string>("RecipientId") ?? "").Trim(), "marcus"));

如果要删除所有不可打印的字符,可以使用Char.IsControl来检测它们:

var found = dtRecipients.AsEnumerable()
    .Where(row => String.Equals(
        new String(
           (row.Field<string>("RecipientId") ?? "").Trim()
            .Where(c => !char.IsControl(c))
            .ToArray()), 
         "marcus", StringComparison.OrdinalIgnoreCase));

我还使用了StringComparison.OrdinalIgnoreCase来展示如何忽略大小写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM