2016-06-15 13 views
0

Ich habe Methode, die list zurückgeben und ich möchte diese Liste von GetAndPost Methode zu Test Methode übergeben .. Ich habe keine Ahnung, wie das geht!Wie Listendaten an andere Methode übergeben

Code:

public List<string> GetAndPost() 
    { 
     Connection(); 
     con.Open(); 

     com = new SqlCommand("SELECT Statement ", con); 
     SqlDataReader reader = com.ExecuteReader(); 
     List<string> list = new List<string>(); 
     int i = 0; 
     while (reader.Read()) 
     { 

      TXNID = reader.GetValue(0).ToString(); 
      docType = reader.GetValue(1).ToString(); 
      docNo = reader.GetValue(2).ToString(); 
      ctryIssue = reader.GetValue(3).ToString(); 
      name = reader.GetValue(4).ToString(); 
      expDate = reader.GetValue(5).ToString(); 
      citizen = reader.GetValue(6).ToString(); 
      dob = reader.GetValue(7).ToString(); 

      gender = reader.GetValue(8).ToString(); 
      mbikeNo = reader.GetValue(9).ToString(); 
      mbikeExpDate = reader.GetValue(10).ToString(); 
      branch = reader.GetValue(14).ToString(); 
      status = reader.GetValue(12).ToString(); 
      if (status == "False") 
      { 


      } 

     } 
     reader.Close(); 

     Console.WriteLine(list); 
     return list; 

    } 

    public List<string> Test() 
    { 

    } 
+4

Ihre Liste ist immer leer, Sie deklarieren sie einfach und fügen nichts hinzu. Hoffe es ist der Erklärung wegen ... – 3615

Antwort

0

Sie können es passieren wie diese

Test(list); 

Und das ist, wie Testverfahren wie

public void Test(List<string> list) 
{ 

} 
aussehen sollte
0
public List<string> Test(List<string> stringList) 
{ 

} 

Dann rufen Sie einfach Ihre Test- Methode, indem Sie Ihre Liste daran übergeben, wie;

Test(list); 
0

Unter der Annahme, dass ich eine Variable erklären, dass die Ausgabe der Funktion GetAndPost halten wird.

var getAndPostList = GetAndPost(); 

... 
// Pass value to another function 
Test(getAndPostList); 

Und für Ihre Test Funktion, sollte es eine Liste von Strings

public List<string> Test(List<string> getAndPostList) 
{ 
    ... 
} 
0

erwarten Sie als Liste

public void somefunction(List<YourType> dates) 
{ 
} 

jedoch passieren kann, ist es besser, die allgemeinste zu verwenden (wie im Allgemeinen, Basis) Schnittstelle möglich, so würde ich

public void somefunction(IEnumerable<YourType> dates) 
{ 
} 
verwenden

oder

public void somefunction(ICollection<YourType> dates) 
{ 
} 
0

Ihre Test() Funktion wie so sein sollte (im Fall, dass Test() keinen Wert zurückgibt, hat):

public void Test(List<string> stringList) 
{ 

} 

Auf Ihrer GetAndPost() Funktion:

return list; 
Rufen Sie dann Ihre

Funktion

test(GetAndPost()); 

Wenn Sie die Test() Funktion Withinn Ihre GetAndPost() Funktion ersetzen Sie return mit anrufen möchten:

test(list); 

und ändern Sie die Deklaration von GetAndPost() zu:

public void GetAndPost() 
{ 
//YOUR CODE 
} 
0

Ihre Test Methode sollte erwarten ein Listenargument, wenn Sie diese Liste übergeben möchten.

public List<string> Test(List<string> list) 

und dann diese Methode aufrufen in Ihrem GetAndPost Methode von überall.

Test(list); 

Sie haben keine Liste von der Test Methode zurück, auch wenn Sie den Inhalt der Liste zu ändern erwarten. List ist ein Klassentyp und wurde als Referenz übergeben. Sie können die gleiche Liste in Test Methode bearbeiten und die Änderungen von GetAndPost Methode zugreifen.

Verwandte Themen