天天看點

Tuple

如果我們想在一個方法中傳回多個值,多個不同類型的值,該怎麼辦呢?

數組,List,Dictionary,各有千秋,但不一定都适合我們的要求。它們都可以算是個集合,更适合多行的情況。

如果定義一個類,有時又顯得小題大做了點。

定義結構(struct)是個好主意,但畢竟還是要定義,鄭重其事,并且往往還要引用結構所在的命名空間、類名,還是太麻煩了。

十月革命一聲打炮,給我們送來了 Tuple

Tuple就是一個複合類型,可同時支援10個屬性,并且每個屬性還可以不同類型。你可以将它看成系統提供的結構。

Tuple<string, int> t = adapter(viewId, list);
ViewBag.ViewId = t.Item1;//Item1按照聲明,自然是string
ViewBag.ObjectTypeId = t.Item2;//Item2按照聲明,自然是int

Tuple<string, int> adapter(string viewId,IList<ViewTag> list)
{
    string myViewId = viewId;
    if (myViewId == "")
    {
        myViewId = list[list.Count - 1].ViewId.ToString();
    }
    return new Tuple<string,int>(myViewId,list[list.Count - 1].ObjectTypeId);
}