Linq to Entities从nvarchar字段返回一个int列表

时间:2012-06-27 10:34:32

标签: entity-framework c#-4.0 linq-to-entities

我正在使用C#,Linq to Entities和.Net 4

我使用以下代码提取数据列表。数据可以是数字,但对于某些记录,它可以是null或某种其他形式的数据。是否有可能Linq只提取此字段中的数字或我是否需要使用其他步骤?

var s = (from t in context.Cards where t.CardData != null select t.CardData).ToList();

上面会返回一个字符串列表,但我想要一个int列表。 CardData字段可以是null,数字或一些文本。在DB中,它是一个可以为空的nvarchar字段。

1 个答案:

答案 0 :(得分:2)

最简单的方法是在返回列表的每个元素上使用TryParse。你已经删除了null元素,所以你知道你有一些东西:

var numberList = new List<int>();
foreach (var item in s)
{
    int result = 0;
    if (Int32.TryParse(item, result))
    {
        numberList.Add(result);
    }
}

这有一个额外的好处,你可以理解它从现在起18个月后的作用。