0

設定された ID を介してオブジェクトの名前を取得する方法を探しています。
名前の最初の部分は常に同じです。「評価」と、それをカウント整数の現在の値と連結したいと思います。"Rating" + i.
部分的なオブジェクト名と変数を連結してオブジェクト名を作成する方法はありますか、それとも単に配列を反復処理するだけですか?

4

2 に答える 2

0

通常、オブジェクトのコレクションを射影するには、LINQ、より具体的には を使用しますIEnumerable.Select。この場合、int( Idtype のプロパティint) をに射影しているstringため、一般的な方法は次のとおりです。

public static IEnumerable<string> GetNamesFromIds(IEnumerable<int> ids)
{
    return ids.Select(i => "Rating" + i);
}

したがって、次のようなクラスを想定します。

public class Rating 
{
    public int Id { get; set; }
}

あなたは単に使用することができます:

// get the list of ratings from somewhere
var ratings = new List<Rating>(); 

// project each Rating object into an int by selecting the Id property
var ids = ratings.Select(r => r.Id);

// project each int value into a string using the method above
var names = GetNamesFromIds(ids);

または、一般的に、どれもIEnumerable<int>同じように機能します。

// get ids from a list of ratings
names = GetNamesFromIds(ratings.Select(r => r.Id));

// get ids from an array
names = GetNamesFromIds(new [] { 1, 2, 3, 4, 5});

// get ids from Enumerable.Range
names = GetNamesFromIds(Enumerable.Range(1, 5));
于 2014-10-20T13:26:56.977 に答える