2016-05-24 1 views
1

内のオブジェクトにデータを追加し、私は次のクラスC#の - オブジェクト

public class manoeuvresID 
{ 
    public string manName { get; set; } 
    public int manID { get; set; } 
} 

public class testID 
{ 
    public string testName { get; set; } 
    public int ID { get; set; } 
    public IList<manoeuvresID> manoeuvres { get; set; } 
} 

を持っており、型の新しいリストにデータを追加したいテストID

 HardCodedDatabase.testID testObjet = new HardCodedDatabase.testID(); 
     testObjet.testName = "test1"; 
     testObjet.manoeuvres = "man1"; 

     List<HardCodedDatabase.testID> listForTesting = new List<HardCodedDatabase.testID>(); 
     listForTesting.Add(testObjet); 

問題は、私がいないということです

+1

[命名規則](https://msdn.microsoft .com/en-us/library/ms229043(v = vs.100).aspx)は本当に有用で重要です;-) –

答えて

2

リストを初期化して(コンストラクタを使用して)オブジェクトを追加してからオブジェクトを追加してください:

testObjet.Manoeuvres = new List<ManoeuvresId>(); 
ManoeuvresId id = new ManoeuvresId(); 
id.ManId = 1; 
id.ManName = "man1"; 
testObjet.Manoeuvres.Add(id); 

これは、可能なコンストラクタの実装です(名前付けの問題も修正されています)。その後

public class TestId 
{ 
    public TestId() : this(-1, null) { } 
    public TestId(int id) : this(id, null) { } 
    public TestId(string name) : this(-1, name) { } 
    public TestId(int id, string name) 
    { 
     this.ID = id; 
     this.TestName = name; 
     this.Manoeuvres = new List<ManoeuvresId>(); 
    } 

    public string TestName { get; set; } 
    public int ID { get; set; } 
    public IList<ManoeuvresId> Manoeuvres { get; set; } 
} 

リストが常に初期化されることが確実だとあなたはそれを簡略化することができます。また

TestId testObjet = new TestId(1, "test1"); 
testObjet.Manoeuvres.Add(new ManoeuvresId { ManId = 1, ManName = "man1" }); 
+0

ありがとうございます。いくつかの変更を加えれば効果がありました! – peetman

+0

ListForTestingに別のTestObjetを追加するにはどうしたらいいですか? 'TestObjet.testName =" test1 "; ListForTesting.Add(TestObjet); TestObjet.testName = "test2"; ListForTesting.Add(TestObjet); combobox_testType.Items.Add(ListForTesting [0] .testName); combobox_testType.Items.Add(ListForTesting [1] .testName); ' – peetman

+0

@peetman:新しい' TestId'-instanceを初期化する必要があります: 'testObjet = new HardCodedDatabase.testID(); testObjet.testName = "test2"; ListForTesting.Add(testObjet); '。 「 –

1

リスト

testObjet.manoeuvres = new list<HardCodedDatabase.manoeuvresID>(); 
に定義testobjet.manoeuvresに値を追加する方法を知っています

manoeuvresId

var anotherTestData = new HardCodedDatabase.manoeuvresID(); 
     anotherTestData .manName = "something"; 

がそれだtestObj

testObjet.manoeuvres.Add(anotherTestData); 

にこのオブジェクトを追加のオブジェクトを作成します。これを試してみてください

だからあなたのコードは、この

HardCodedDatabase.testID testObjet = new HardCodedDatabase.testID(); 
     testObjet.testName = "test1"; 
     testObjet.manoeuvres = "man1"; 
testObjet.manoeuvres = new list<HardCodedDatabase.manoeuvresID>(); 
testObjet.manoeuvres.Add(anotherTestData); 

var anotherTestData = new HardCodedDatabase.manoeuvresID(); 
      anotherTestData .manName = "something"; 

     List<HardCodedDatabase.testID> listForTesting = new List<HardCodedDatabase.testID>(); 
     listForTesting.Add(testObjet); 
1

のようになります。 testIDオブジェクトにList<manoeuvresID>を追加する必要があります。

testID testObjet = new testID(); 
testObjet.testName = "test1"; 

manoeuvresID man = new manoeuvresID(); 
man.manID = 1; 
man.manName = "Mairaj"; 

testObjet.manoeuvres = new List<manoeuvresID>() { man }; 

List<testID> listForTesting = new List<testID>(); 
listForTesting.Add(testObjet);   
2

あなたはIListを見ればあなたが表示されますので、あなたが新しいに演習を設定する必要が

testObjet.manoeuvres.Add(new manoeuvresID(){manName ="Something"}); 

ノートを行うだろうadd関数

を持っているリスト、されていますリスト(またはIListを実装している他のクラス)最初に

0

HardCodedDatabase.testID testObjet = new HardCodedDatabase.testID(); 
    testObjet.testName = "test1"; 
    testObjet.manoeuvres.Add(new manoeuvresID(){manName ="man1"}); 
    List<HardCodedDatabase.testID> listForTesting = new List<HardCodedDatabase.testID>(); 
    listForTesting.Add(testObjet); 
+0

エラー 'ValAppWPF.HardCodedDatabase.ManoeuvresID'型を暗黙的に 'System.Collections.Generic.IList 'に変換できません。 – peetman

+0

okもう一度試してみてください –

+0

まだ編集していません。 monoeuvresID()は認識されません。私は、HardCodedDatabase.manoeuvresID()を追加して、私が以前に書いたエラーをスローする必要があります – peetman