2013-04-14 62 views
1

我很努力讓我的頭回到一個有多個元素的列表(PHP背景 - 我會在PHP中使用這個數組)。具有多個元素的返回列表

我有一個很大的字符串,我在WHILE循環中解析。我想用元素對返回一個List。我試過這樣的事情:

static public List<string> getdata(string bigfile) 
{ 
var data = new List<string>[] { new List<string>(), new List<string>() }; // create list to hold data pairs 

While (some stuff) 
{ 
    // add element pair to List<data> 
    data[0].Add(this); // add element to list - 'this' is declared and assigned (not shown)  
    data[1].Add(that); // add element to list - 'that' is declared and assigned (not shown) 

} 

return data???; // <<-- This is where I'm failing. I can, of course, return just one of the elements, like return data[0];, but I can't seem to get both elements (data[0] and data[1]) together. 

} // end getdata 

我已經回顧了一些答案,但我錯過了一些東西。我已經嘗試了幾種語法的返回值,但沒有運氣。任何幫助將不勝感激。我討厭提問,但我花了一些時間在這方面,我只是沒有找到我想要的。

回答

0

嘗試

static public List<string>[] getdata(string bigfile) 
{ 
    .... 
} 

或者

但是如果你需要返回字符串數組列表,然後更改方法

static public List<string[]> getdata(string bigfile) 
{ 
    List<string[]> data= new List<string[]>(); 

    While (some stuff) 
    { 
     data.Add(this);  
     data.Add(that); 

    } 

    return data; 
} 
+0

+1用於顯示替代例子。 –

2

更改方法聲明:

static public List<string>[] getdata(string bigfile) 
0

該pro你有沒有返回List的集合,所以返回類型是不匹配的。試試這個,

  var data = new List<string>(); 

      while (some stuff) 
      { 

       data.Add("test0"); 
       data.Add("test1"); 
      } 
      return data; 
0

我想與元素對返回一個列表

如果你想對,使用對:

static public List<Tuple<string, string>> getdata(string bigfile) 
{ 
    var data = new List<Tuple<string, string>>(); // create list to hold data pairs 

    while (some stuff) 
    { 
     // add element pair 
     data.Add(Tuple.Create(a, b)); // 'a' is declared and assigned (not shown)  
             // 'b' is declared and assigned (not shown) 
    } 

    return data; 
} 
+0

謝謝你讓我接觸到Tuple類。不知道是否有使用Tuple的內在(不)優勢,而不是簡單地改變Method聲明(這是我最終以超出問題範圍的原因而做的)。 –