2012-07-20 45 views
0

我想找出將複雜對象添加到列表中的語法。這是我知道的作品:將對象添加到列表的語法?

ComplexObject temp = new ComplexObject() {attribute1 = 5, attribute2 = 6}; 
ComplexObjectList.Add(temp); 

這裏是我想要做的,而不是什麼:

ComplexObjectList.Add(new ComplexObject(){attribute1 = 5, attribute2 = 6}); 

我意識到,它不工作,但沒有任何其他的方式來添加一個到我的列表沒有創建一個之前?除了這個函數調用之外,我不需要temp。

+8

_「意識到它不起作用」_但它這樣工作。 – 2012-07-20 20:53:21

+0

什麼不行?你的語法對我來說看起來很好。 – 2012-07-20 20:53:35

+0

如何插入從未創建過的東西 – HatSoft 2012-07-20 20:54:36

回答

1

你的代碼應該工作。如果沒有,那麼問題可能在ComplexObjectList的聲明中。 應該是:List<ComplexObject> ComplexObjectList = new List<ComplexObject>(); 還要確保類屬性是公共的。

3

假設你有這個類(要點之中必須是可訪問的構造和性能,你要設置必須是可見的):

public class Point 
{ 
    public int X { get; set; } 
    public int Y { get; set; } 
} 

而且你有這樣的名單:

var listOfPoint = new List<Point>(); 

那麼你可以,作爲你的第二個例子思考,這樣做:

listOfPoint.Add(new Point { X = 13, Y = 7 }); 

這是大致(也有一些細微的差別,埃裏克利珀有一些很好的讀取這個),相當於您的第一個例子:

var temp = new Point { X = 13, Y = 7 }; 
listOfPoint.Add(temp); 

事實上,你可以在構造列表,以及時補充點:

var listOfPoint = new List<Point> 
    { 
     new Point { X = 7, Y = 13 } 
    }; 

現在,你說你「意識到它不起作用」的事實令人費解,因爲你的初始化語法是正確的,所以我不確定你是否在嘗試之前詢問,或者如果有與你的名單或你的班級宣佈你的問題是拋出你的問題。這就是說,如果你的第一個代碼片段被編譯,技術上應該是你的第二個。