相关疑难解决方法(0)

LINQ查询执行投射,跳过或包装异常,其中源抛出IEnumerable.GetNext()

我想要一个通用的解决方案,但作为一个例子,假设我有一个IEnumerable<string>,其中一些可以解析为整数,有些不能.

var strings = new string[] { "1", "2", "notint", "3" };
Run Code Online (Sandbox Code Playgroud)

显然,如果我这样做,Select(s => int.Parse(s, temp))它会在枚举时抛出异常.

在这种情况下,我可以先做.All(s => int.TryParse(s, out temp)),但我想要一个通用的解决方案,我不必枚举IEnumerable两次.

理想情况下,我希望能够执行以下操作,它调用我的魔术异常跳过方法:

// e.g. parsing strings
var strings = new string[] { "1", "2", "notint", "3" };
var numbers = strings.Select(s => int.Parse(s)).SkipExceptions();
// e.g. encountering null object
var objects = new object[] { new object(), new object(), null, new object() }
var objecttostrings = objects.Select(o => o.ToString()).SkipExceptions();
// e.g. …
Run Code Online (Sandbox Code Playgroud)

c# linq ienumerable exception-handling word-wrap

21
推荐指数
2
解决办法
2530
查看次数

使用 LinqToCSV - 忽略额外的列?

有没有办法使用 LinqToCSV 并仅选择特定列?

例如,我需要每天提取一个 CSV 文件,该文件一个月可能有 14 列,下个月可能有 15 列。目前我已将其配置为映射所有 14 列,但这确实不理想,因为我真正关心的只有 10 列。

因此,当抛出额外的列时,我会抛出 TooManyDataFieldsException 并且 LinqToCSV 不会读取 CSV 文件的任何行。

.net linq csv

5
推荐指数
1
解决办法
5880
查看次数

标签 统计

linq ×2

.net ×1

c# ×1

csv ×1

exception-handling ×1

ienumerable ×1

word-wrap ×1