这是C#程序的一个小片段,用于从文件生成字典。
var _mappings = File.ReadAllLines("file.txt")
.Select(line =>
{
var splitt = line.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
return new fooclass
{
foo = abc[0],
foo1 = abc[1],
foo2 = abc[2],
};
})
.ToDictionary<fooclass, string>(mkey => mkey.abc[0]);
关于如何从函数返回这个字典,我处于两难境地。返回弱类型在功能上不被认为是好的,并且var本身不能是返回类型。
那么,在这种情况下会有什么理想的呢?
答案 0 :(得分:1)
var
不是一种类型,它不是弱的或动态的。这是mereley告诉编译器弄清楚它是什么类型。在这种情况下,它将是ToDictionary
方法返回的类型,它将是Dictionary<fooclass, string>
。
答案 1 :(得分:0)
您应该更改代码,以便密钥为char
:
ToDictionary<char, fooclass>(mkey => mkey.abc[0]);
你可以从你的功能中返回它。
答案 2 :(得分:0)
如果它有用,则以下编译。
public class SomeClass
{
private Dictionary<char, ScoresandPercentiles> function()
{
var _mappings = File.ReadAllLines("file.txt").Select(line =>
{
var splitt = line.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
return new ScoresandPercentiles
{
foo = splitt[0],
foo1 = splitt[1],
foo2 = splitt[2],
};
}).ToDictionary(mkey => mkey.foo[0]);
return _mappings;
}
}
internal class ScoresandPercentiles
{
public string foo;
public string foo1;
public string foo2;
}