相关疑难解决方法(0)

如何将List <string>转换为List <int>?

我的问题是这个问题的一部分:

我从一个表单中收到了一个id的集合.我需要获取密钥,将它们转换为整数并从数据库中选择匹配的记录.

[HttpPost]
public ActionResult Report(FormCollection collection)
{
    var listofIDs = collection.AllKeys.ToList();  
    // List<string> to List<int>
    List<Dinner> dinners = new List<Dinner>();
    dinners= repository.GetDinners(listofIDs);
    return View(dinners);
}
Run Code Online (Sandbox Code Playgroud)

c#

150
推荐指数
6
解决办法
13万
查看次数

如果string可解析为int,则选择解析的int

所以我有一个IEnumerable<string>可以包含可以解析int为的值,以及不能的值.

如您所知,Int32.Parse如果字符串无法更改为int,则抛出异常,同时Int32.TryParse可用于检查并查看是否可以在不处理异常的情况下进行转换.

所以我想使用LINQ查询来解析那些可以解析为int的字符串,而不会抛出异常.我有一个解决方案,但希望社区提出有关这是否是最佳方法的建议.

这就是我所拥有的:

int asInt = 0;
var ints = from str in strings
           where Int32.TryParse(str, out asInt)
           select Int32.Parse(str);
Run Code Online (Sandbox Code Playgroud)

所以你可以看到,我正在使用它asInt作为调用的临时空间TryParse,只是为了确定是否TryParse会成功(返回bool).然后,在投影中,我实际上正在执行解析.那感觉很难看.

这是使用LINQ过滤单行中的可解析值的最佳方法吗?

c# linq int

49
推荐指数
5
解决办法
4万
查看次数

标签 统计

c# ×2

int ×1

linq ×1