我有一个类似于这样的接口:
IEnumerable<(string valueA, decimal valueB)> GetData
这个接口不应该被更改。因此我正在尝试实现它。我需要使用LINQ,所以我有以下这部分代码:
var fetchedData = File.ReadAllLines(filePath)
.Skip(1)
.Select(a => x.Split(';'))
.Select(a => new
{
valueB= decimal.Parse(a[0]),
valueA= a[1]
});
return fetchedData;
问题在于
fetchedData
的类型与接口所需的类型不同。我需要返回IEnumerable<(string valueA, decimal valueB)>
,但是fetchedData
是另一种类型。
.Select(a => (a[1], decimal.Parse(a[0]));
- Dmitry Bychenko.Select(a => (valueA: a[1], valueB: decimal.Parse(a[0]))
。请注意匿名类型和值元组的不同语法;您的IEnumerable
声明使用了后者。在此处添加成员名称是可选的,但我强烈建议这样做,因为它使得需要遵守顺序(与匿名类型不同)变得更加清晰。 - Jeroen MostertTuple
。 - Franck(string valueA, decimal valueB)
不是匿名类型,而是元组。 - Enigmativity