0

私は次のような1つのインターフェイスを持っています

public interface Details
{
    int Id { get; set; }
    string Name { get; set; } 
}        

そして、私は次のような別のクラスに1つのメソッドを持っています

public void GetDetails()      
{ 
    List<Details> lstDetails = new List<Details>();        
    DetailsImpl objDetailsImpl;
    Details objDetails = new DetailsImpl();
    for (int i = 1; i <= 2; i++)
    {
        objDetailsImpl = new DetailsImpl(); //The **DetailsImpl** class is given below
        objDetails.Id = i;
        if(i==1)
           objDetails.Name = "FirstName";
        else
           objDetails.Name = "SecondName";
        lstDetails.Add(objDetails);
    }
    objDetailsImpl.InsertRecords(lstDetails);  
}

そして、InsertRecordsメソッドを次のような別の派生クラスに記述します。

public class DetailsImpl : Details
{
    Dictionary<object, object> objDictionary = new Dictionary<object, object>();
    public string Name { get; set; }
    public int Id { get; set; }

    public int InsertRecords(List<Details> lstDetails)
    {
        for (int i = 0; i < lstDetails.Count; i++)
        {
            //i want to get the integer value "Id" from List(lstDetails)
            Id = //How to get the Id value based on count, now the <lstDetails> count is 2

            //i want to get the Name object value also, how to i get???
            Name = Convert.ToString(String.Join(",",lstDetails.Select(s => s.Name).ToArray()));
            //If i using the above line for getting **Name** value means, its comes like "FirstName,LastName", but i want **Name** value based on row.....


            objDictionary.Clear();
            objDictionary.Add("@Id",Id);
            objDictionary.Add("@Id",Name);
            //Here i passed this parameter to "ExecuteNonQry" method for insert operations
            ExecuteNonQry("sp_name",objDictonary,CommandType.StoredProcedure);
        }
        return 1;
    }
}

リスト数に基づいてId、Nameオブジェクトの値を取得したい。これを解決するにはどうすればよいですか?

4

3 に答える 3

4

あなたは書き込もうとしています

String.Join(", ", list.Select(o => o.Name))
于 2012-05-23T14:51:55.810 に答える
4

番目の要素のNameプロパティはi

lstDetails[i].Name

あなたはaを持っていないことを指摘する価値があります。List<>List<T>T

于 2012-05-23T14:52:26.220 に答える
1

リストにDetailタイプの複数のオブジェクトがあり、Detailは次のようになっていると仮定します。

public class Detail
{
    public int Id{get;set;}
    public string Name {get;set;}
}

これで、2つの詳細オブジェクトを含むリストができました。

lstDetails.Add(new Detail(){Id = 1, Name = "John"});
lstDetails.Add(new Detail(){Id = 2, Name = "Charlie"});

ループが完了したらstrValue封じ込めたい場合は、ループなしで以下のコードを使用できますJohn, Charlie

strValue = String.Join(",", lstDetails.Select(s => s.Name).ToArray());
于 2012-05-23T15:10:57.840 に答える