C# - 如何根据列表计数获取 for 循环中的 List<> 对象值

本文关键字:循环 List 对象 for 获取 何根 列表 | 更新日期: 2023-09-27 18:35:18

我有一个界面,比如,

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

我在另一个类中有一个方法,例如

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 对象值。我该如何解决这个问题?

C# - 如何根据列表计数获取 for 循环中的 List<> 对象值

i 个元素的Name属性为

lstDetails[i].Name

值得指出的是,你没有List<>你有List<T>——你没有告诉我们T是什么。

你正在尝试编写

String.Join(", ", list.Select(o => o.Name))

假设您的列表有多个"详细信息"类型的对象,其中"详细信息"如下所示:

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());