在查询语法中很难做到这一点,但在lambda语法中还不错:
var ints = strings.Select(str => { int value; bool success = int.TryParse(str, out value); return new { value, success }; }) .Where(pair => pair.success) .Select(pair => pair.value);
另外,您可能会发现值得编写一个返回的方法
int?:
public static int? NullableTryParseInt32(string text){ int value; return int.TryParse(text, out value) ? (int?) value : null;}
然后,您可以使用:
var ints = from str in stringslet nullable = NullableTryParseInt32(str)where nullable != nullselect nullable.Value;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)