2013-10-22 43 views
2

大家好,我是Stackoverflow的新手,所以無視錯誤。我有不同的用戶定義的類,它們具有多個屬性。我想使用這些類創建一個List,並且需要使用系統定義數據類型而不是用戶定義類... 以下是您可以更好地理解的代碼。如何從用戶定義的類創建列表

這裏是類

public class Slide 
{ 
    public string Name { get; set; } 
    public bool IsChecked { get; set; } 
} 
//......... 
public class SubSection 
{ 
    public SubSection() 
    { 
     this.Composition = new ObservableCollection<object>(); 
    } 
    public string Name { get; set; } 
    public bool IsChecked { get; set; } 
    public ObservableCollection<object> Composition { get; set; } 

} 
//................ 
public class Section 
{ 
    public Section() 
    { 
     this.SubSections = new List<SubSection>(); 
    } 
    public string Name { get; set; } 
    public bool IsChecked { get; set; } 
    public List<SubSection> SubSections { get; set; } 
} 

每個節點列表中應該有條,款和滑動

+2

「需要使用系統定義數據類型而不是用戶定義類」......不確定您的意思。 – crashmstr

+0

什麼是用戶定義的類,什麼是系統數據類型?這個代碼示例並沒有讓你明白你想要做什麼,也許你可以提供更多的信息? –

+0

另外,您正在使用哪個版本的.NET/C#? –

回答

0

首先創建一個模型類,你要包括所有的數據之後,你可以創建該類的列表。

public class CustomClass 
{ 
    public Section{get;set;} 
    public SubSection{get;set;} 
    public Slide{get;set;} 
} 

var customClasses = new List<CustomClass>(); 
1

我假設您需要一個列表,列表中的每個元素都包含您在問題中列出的每個類中的一個。您可以使用Tuples列表:

var mylist = new List<Tuple<Section, SubSection, Slide>>(); 
mylist.Add(Tuple.Create(new Section(), new SubSection(), new Slide()); 
mylist.Add(Tuple.Create(new Section(), new SubSection(), new Slide()); 
mylist.Add(Tuple.Create(new Section(), new SubSection(), new Slide()); 

元組簡單介紹了.NET 4.5,所以只要你在至少4.5,這會爲你工作。

+0

元組實際上對具體課程有利嗎?我之前使用過它們,但它不是最易讀/可維護的代碼。 – Arkiliknam

+0

@Arkiliknam我通常會創建自己的課程,除非它是內部的東西。 OP提到了系統定義的類型,所以我在標準庫中找了一些東西,猜測這就是OP的意思。 –

+0

啊,我錯過了。好電話然後:) – Arkiliknam

0

我同意Josh Smeaton對Tuples的回答,但爲了好玩,我不知道你是否可以將匿名類型視爲系統定義類型......?

var myList = new[] 
{ 
    new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()}, 
    new { Section = new Section(), SubSection = new SubSection(), Slide = new Slide()} 
}.ToList(); 
+0

哈,我已經添加了匿名類型到我的答案作爲第二個選項,但刪除它們。只適用於本地範圍,但仍然是一個很好的想法來展示它們。 –

相關問題