2016-10-11 7 views
0

明示的に私のPosのプロパティを設定することは可能ですか? " ポジションでのデータ:3" 2 ":私の `Pos`-Propertyのカウンタを明示的に設定することは可能ですか?

SomeClass hasAlreadySomeData=new SomeData(); 

foreach(item in hasAlreadySomeData.Data) 
{ 
Console.Writeline("Data with Position: " + item.Pos); 
} 


This should result in: 

"ポジションでのデータ:1"" データの位置と

public class SomeClass 
    { 
     public List<SomeData> Data { get; set; } 
    } 

    public class SomeData 
    { 
     private int _pos; 

     public int Pos 
     { 
      get { return _pos; } 
      private set { _pos = value; } 
     } 

    } 

コードを呼び出す...

Posを明示的に設定しないで(そのリスト内の要素のカウンタとする)

+0

なぜData.Countをループのための定期的な?次に、各項目の数値インデックスがあります。 。 。 – iheanyi

+0

実際のリストに追加する前にSomeDataの "Pos"フィールドを設定する独自のList-wrapperを作成する必要があります。 - *どこか*あなたが手動で追加する/削除する要素の位置を、SomeClassのリストに追加する必要があります。 – mmcrae

+1

これは、 'IndexOf'メソッドのためのものです。一部の人は、それがコレクション内の位置を知ることがオブジェクトの仕事ではないと言うでしょう。私は同意するだろう。同じオブジェクトが複数のコレクションにある場合はどうなりますか? – TyCobb

答えて

0

あなたはすでにリストにあるアイテムの数を知っています。その上にちょうどループ:

for (int pos = 0; pos < Data.Count; ++pos) { 
    Console.Writeline("Data with Position: " + pos); 
} 

あなたは、自分の位置が1をインデックスしたい場合:

for (int pos = 0; pos < Data.Count; ++pos) { 
    Console.Writeline("Data with Position: " + pos + 1); 
} 
関連する問題