2017-03-04 161 views
-1

好了,在一個控制檯應用程序我工作,我在Class01如何從一個類閱讀列表中的其他

class Class01 
{ 
    public List<string> myList = new List<string>(); 

    public void _addsList() 
    { 
     myList.Add("0001Test01"); 
     myList.Add("0002Test02"); 
     myList.Add("0003Test03"); 
     myList.Add("0004Test04"); 

     for (int i = 0; i < myList.Count; i++) 
     { 
      Console.WriteLine(myList[i] + ","); 
     } 
    } 
} 

有一個列表(myList中),我需要閱讀該列表Class02

class Class02 
{ 
    public void _callList() 
    { 
     var class02 = new Class01(); 
     string wits2; 

     List<string> buffer = new List<string>(); 
     for (int i = 0; i < class02.myList.Count; i++) 
     { 
      wits2 = class02.myList[i].Substring(0, 4); 
      Console.WriteLine(class02.myList[i]); 
     } 

     Console.ReadKey(); 

    } 
} 

這個程序的輸出應該寫這篇文章的控制檯:

0001Test01,

0002Test02,

0003Test03,

0004Test04,

技術

現在我看到的GetList用來做這個

public class MyClass { 

    private List<string> myList = new List<string>(); 

    public List<string> GetList() 
    { 
     return myList; 
    } 
} 


public class CallingClass { 

    MyClass myClass = new MyClass(); 

    public void GetList() 
    { 
     List<string> calledList = myClass.GetList(); 
     ///More code here... 
    } 
} 

但我爲了我的生活無法得到這個工作。我不知道我是否缺少名稱空間或什麼。我甚至不知道GetList是否可以在控制檯應用程序中使用。

所以我真的很感謝幫助。

謝謝,

+0

什麼是'不能得到這個工作'?另外,你不會把任何值放入你從'MyClass'的'GetList'返回的'myList'中。 – TheVillageIdiot

+0

前兩個代碼塊是我的工作。另外兩個是[這裏](http://stackoverflow.com/questions/3717028/access-list-from-another-class) – BlackOre

回答

0

雖然不完全清楚你的問題什麼是行不通的。但我懷疑你需要把值列入清單。如果你的意思是不是在控制檯中顯示任何嘗試這個辦法:

var class02 = new Class01(); 
string wits2; 

class02._addsList(); 

編輯:閱讀您的評論之後,我認爲這將解決它:

for (int i = 0; i < class02.myList.Count; i++) 
{ 
    wits2 = class02.myList[i].Substring(0, 4); 
    Console.WriteLine(class02.myList[i]); 
    buffer.Add(wits2);//Add it to list declared in this function 
} 

注意:如果你的意思是你當在類對象上調用_addsList時,請確保您在使用Class01的對象之前調用此函數一次。從Class02的第二代碼塊,您不打的對象_addsList功能。

+0

(注意自我:在這些措辭上更好) 我的問題是Class02不能從Class01讀取列表 Class01寫入完整列表 Class02應該讀取Class01中的列表,並且只將前四位數字存儲在自己的列表中。因此,「0001Test1」在新列表中保存爲「0001」 – BlackOre

+0

您是否收到任何異常?兩個類都在同一個項目中定義。嘗試將'class01'聲明爲'internal'。 – TheVillageIdiot

0

在您的Class02:

 var class02 = new Class01(); 
     class02._addsList(); //Add this on your declaration 
     string wits2; 

然後改變你傳遞你的控制檯變量。的WriteLine:

List<string> buffer = new List<string>(); 
     for (int i = 0; i < class02.myList.Count; i++) 
     { 
      wits2 = class02.myList[i].Substring(0, 4); 
      //Console.WriteLine(class02.myList[i]); //Remove this 
      Console.WriteLine(wits2); //Use wits2 instead since this is what you get on your Substring 
     } 
0

我認爲你缺少最重要的是你的類沒有標記爲公共

所以請類聲明前添加公共如下

public class Class02 
    { 
    ...... 

還有一件事,爲了得到你需要的輸出,在你的class02中,你將子串分配給'wits'變量但不打印它。而是將值從列表傳遞給Console.Writeline。

希望這會有所幫助

0

感謝TheVillageIdiot。我現在得到了這個工作。所以謝謝。我的代碼看起來像現在這樣:

public class Class01 
{ 
    public List<string> myList = new List<string>(); 

    public void _addsList() 
    { 
     myList.Add("0001Test01"); 
     myList.Add("0002Test02"); 
     myList.Add("0003Test03"); 
     myList.Add("0004Test04");    
    } 
} 

class Class02 
{ 
    public void _callList() 
    { 
     var class01 = new Class01(); 
     class01._addsList(); //<--- Had to add this line 

     for (int i = 0; i < class01.myList.Count; i++) 
     { 
      Console.WriteLine(class01.myList[i] + ","); 
     } 

     string wits2; 

     List<string> buffer = new List<string>(); 
     for (int i = 0; i < class01.myList.Count; i++) 
     { 
      wits2 = class01.myList[i].Substring(0, 4); 
      Console.WriteLine(wits2); 
     } 

     Console.ReadKey(); 

    } 
} 

對於惡棍誰不明白的問題,Class02無法讀入Class01列表。

感謝您的幫助!

相關問題