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