如何用LINQ选择*some*项?

Pom*_*oma 2 .net c# linq

如何在LINQ中编写这个函数?

public List<TResult> select(List<string> source)
{
    List<TResult> result = new List<TResult>();
    foreach (var a in source)
    {
        try { result.Add(TResult.Parse(a)); }
        catch { }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我想只选择可转换为TResult的项目.TResult.Parse()返回TResult的新实例.

Rob*_*cke 5

您可以将语句而不仅仅是lambdas传递给LINQ方法:

var results = source.Select(item => 
  {
    try
    { 
      return TResult.Parse(item);
    }
    catch
    { return null; }
  }).Where(result => result != null).ToList();
Run Code Online (Sandbox Code Playgroud)