2016-03-04 46 views
0

我想把類型字符串列表中的所有項目放入類型對象的列表。c# - 如何把列表<string>項目到列表<object>

這裏是我的類:

public class Object 
{ 
    public string url; 
    public bool case; 
    public void Add(string item) 
    { 
     url = item; 
    } 
} 

我曾嘗試以下(什麼是字符串類型,從中我試圖將元素添加到我的新類型的對象名單列表):

List<Object> finals = something.OfType<Object>().ToList(); 

List<Object> finals = new List<Object>(); 
foreach(var item in something) 
{ 
    finals.Add(item); 
} 

我想是從我的對象類有「URL」以與在t每個元素等於他列出和「案件」被設置爲虛假的所有人。

我希望我已經夠清楚了。提前致謝 !

+1

'Object'是一個非常糟糕的名字,你將會頻繁地遇到與'System.Object'的衝突。我會建議選擇一個不同的名字。 –

+0

@ScottChamberlan該名稱僅用於實例目的 – Garnyatar

+1

@Garnyatar如果您想爲示例類「MyClass」的名稱更好。列表的創建列表與創建列表不同。在第一種情況下,包含對象的簡單轉換就足夠了,後者必須創建新的MyClass對象。 – Domysee

回答

2

首先你需要創建一個Object的實例,然後你可以將它添加到你的列表中。 屬性case默認爲false。

List<Object> finals = new List<Object>(); 
foreach(var item in something) 
{ 
    var newObject = new Object(item); 
    finals.Add(newObject); 
} 
+0

謝謝。這對我來說工作得很好! – Garnyatar

1

取出字符串列表中的每個項目,遍歷它們並返回具有兩個屬性,url和大小寫的對象列表。將案例設置爲false。 Yield return將返回一個可枚舉的對象接口。

public class MyObject { 
    public string url { get; set; } 
    public bool case { get; set; } 
} 

public IEnumerable<MyObject> process(List<string> listOfUrls) { 
    foreach(var item in listofUrls) { 
     yield return new MyObject { 
      url = item; 
      case = false; 
     } 
    } 
} 
2

對於您的情況,您可以通過使用LINQ輕鬆實現這一點。

List<Object> finals = something.Select(s => new Object(s)).ToList(); 

bool默認值是false,所以你不需要任何特定的二傳手它。

2

下面是特定於你的情況下,代碼:

IEnumerable<Object> finals = strings.Select(s => new Object() { url = s }); 

case屬性將默認爲false,這樣你就不必鍵入明確出來。