2

我对如何从方法中重新调整元组有一个很好的建议:

如何从 C# 中的方法返回多个值

现在我意识到我的代码不仅产生两个值,而且产生一个 IEnumerable< >。到目前为止,这是我的代码,其中结果包含一个 IEnumerable 我猜是一个包含注释和标题的匿名对象。我不太确定如何将数据放入元组中,也不确定如何将其从变量 myList 中取出。我可以对 myList 做一个 foreach 吗?

    public static IEnumerable< Tuple<string, string> > GetType6()
    {
        var result =
            from entry in feed.Descendants(a + "entry")
            let notes = properties.Element(d + "Notes")
            let title = properties.Element(d + "Title")

        // Here I am not sure how to get the information into the Tuple 
        //  
    }

    var myList = GetType6();
4

1 回答 1

15

你可以使用constructor

public static IEnumerable<Tuple<string, string>> GetType6()
{
    return
        from entry in feed.Descendants(a + "entry")
        let notes = properties.Element(d + "Notes")
        let title = properties.Element(d + "Title")
        select new Tuple<string, string>(notes.Value, title.Value);
}

但老实说,让你的代码更具可读性和使用模型需要付出什么代价:

public class Item
{
    public string Notes { get; set; }
    public string Title { get; set; }
}

进而:

public static IEnumerable<Item> GetType6()
{
    return 
        from entry in feed.Descendants(a + "entry")
        let notes = properties.Element(d + "Notes")
        let title = properties.Element(d + "Title")
        select new Item
        {
            Notes = notes.Value, 
            Title = title.Value,
        };
}

操作元组恕我直言,使代码非常不可读。当你开始写那些result.Item1, result.Item2, ... 时,result.Item156事情就变得可怕了。result.Title如果你有, result.Notes, ... 会更清楚,不是吗?

于 2013-06-21T08:47:29.653 回答