比较列表元素与字符串

时间:2015-05-26 06:48:44

标签: c# linq

我有一个db表类型列表我想访问列表元素并与字符串进行比较但是我无法访问列表元素怎么做?

List<Tbl_UserCustomField> customattribute = (from custom in tniDataContext.Tbl_UserCustomFields 
                                             where workOrderIndex.LoginId == custom.LoginId 
                                             select custom).ToList();

执行查询并将查询结果存储在列表中后,customattribute只返回列表中的元素数,但我想要字符串中的元素

3 个答案:

答案 0 :(得分:1)

访问它:

foreach(var item in customattribute)
{
    if(item.SomeField == "someString")
       DoSomething();
    else
       DoSomethingElse();
}

如果您想要varchar列,那么您可以直接选择它:

var customattribute = (from custom in tniDataContext.Tbl_UserCustomFields 
                       where workOrderIndex.LoginId == custom.LoginId 
                       select custom.SomeColumn).ToList();

foreach(var item in customattribute)
{
    if(item == "someString")
       DoSomething();
    else
       DoSomethingElse();
}

答案 1 :(得分:0)

试试customattribute.ForEach(i => Console.Write("{0}\t", i));并查看控制台上显示的内容?

答案 2 :(得分:0)

如果您知道Tbl_UserCustomField类中包含您要查找的字符串的列或属性,请遍历customattribute并获取字符串。基本上,您必须在List<string>类型的变量中捕获此类结果。这可以通过简单的foreach方式或使用Select Linq表达式来完成,该表达式只检索您指定的列

        // Approach 1:
        List<string> customAttributeValues = customattribute.Select(c => c.YourStringFieldName).ToList();

        // Approach 2:
        List<string> customAttributeValues = new List<string>();
        foreach (var custom in customattribute)
        {
            customAttributeValues.Add(custom.YourStringFieldName);
        }