我正在使用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字段。
答案 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个月后的作用。