Apt返回此函数的类型

时间:2012-02-23 12:44:17

标签: c#

这是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本身不能是返回类型。

那么,在这种情况下会有什么理想的呢?

3 个答案:

答案 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;
}