您应该使用一个foreach循环,如下所示:
public static IEnumerable<int> StringToIntList(string str) { if (String.IsNullOrEmpty(str)) yield break; foreach(var s in str.Split(',')) { int num; if (int.TryParse(s, out num)) yield return num; }}请注意,就像您的原始帖子一样,它将忽略无法解析的数字。
如果您想在无法解析数字的情况下引发异常,则可以使用LINQ轻松得多:
return (str ?? "").Split(',').Select<string, int>(int.Parse);


