gpt4 book ai didi

c# - 返回匿名类型的 IEnumerable

转载 作者:行者123 更新时间:2023-12-05 08:35:47 24 4
gpt4 key购买 nike

我有一个类似这样的界面:

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与接口(interface)期望的类型不同。我需要返回 IEnumerable<(string valueA, decimal valueB)>但是fetchedData是另一种类型。

最佳答案

您的代码存在一些问题:

  1. 您的界面期望结果为 Tuple<string, decimal>这是符号 (string valueA, decimal valueB) 背后的实际类型

  2. 您的代码,尤其是以下行:

    .Select(a => new 
    {
    valueB= decimal.Parse(a[0]),
    valueA= a[1]
    })

    产生一个具有以下字段的匿名对象 { decimal valueB; string valueA; } .问题是 .NET 将声明一个类来表示匿名类型,这与您最初从接口(interface)请求的元组类型不兼容。

这里是你的代码的修复应该满足接口(interface):

var fetchedData = File.ReadAllLines(filePath)
.Skip(1)
.Select(a => x.Split(';'))
.Select(a => (a[1], decimal.Parse(a[0]) ) );
return fetchedData;

关于c# - 返回匿名类型的 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72937226/

24 4 0