1

我正在使用 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 字段可能为空、数字或一些文本。在数据库中,它是一个可为空的 nvarchar 字段。

4

1 回答 1

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 个月后了解它的作用。

于 2012-06-27T10:44:26.523 回答