ASP.将项目添加到列表中

本文关键字:列表 添加 项目 ASP | 更新日期: 2023-09-27 18:13:59

我正在尝试添加项目到列表:

List<string> newList = new List<string>();
foreach (var x in dbTimeSlots.Data)
{
    newList.Add(x.id.ToString());
    newList.Add(x.timeSlot + " - " + x.dateSlot);
}

然而,当我只有40个项目时,我的列表返回80个项目,这是因为id将是一个项目,时间和日期将是另一个,我需要它们作为一行,但每一行应该有一个id对象,日期和时间对象。我希望这是有意义的,请帮助!!!!

ASP.将项目添加到列表中

我需要它们作为一行,但是每一行应该有一个id对象,并且日期和时间对象

那么您不需要List<string>,而是需要List<CustomObject>,其中CustomObject是具有您指定属性的对象。然后,对于dbTimeSlots.Data中的每个项目,您应该创建这样一个对象,然后将其添加到您的列表中。

public class CustomObject
{
    public string Id { get; set; }
    public string TimeSlot { get; set; }
    public string DateSlot { get; set; }
}

然后是foreach循环:

var newList = new List<CustomObject>();
foreach (var x in dbTimeSlots.Data)
{
    var customObject = new CustomObject
    {
        Id = x.id.ToString(),
        TimeSlot = x.timeSlot,
        DateSlot = x.dateSlot
    };
    newList.Add(customObject);
}

或与LINQ:

var newList = dbTimeSlots.Data.Select(x => new CustomObject
{
    Id = x.id.ToString(),
    TimeSlot = x.timeSlot,
    DateSlot = x.dateSlot
}).ToList();

创建一个模型来存储您想要的类型,或者使用匿名类型

var newList = dbTimeSlots.Data.Select(x => new 
    { 
         id = x.id, 
         timeDateSlot = x.timeSlot + " - " + x.dateSlot 
    }).ToList();

另一个可能的选择是使用Dictionary而不是List

var myDictionary = new Dictionary<string, string>();
foreach (var x in dbTimeSlots.Data)
{
    myDictionary.Add(x.id.ToString(), x.timeSlot + " - " + x.dateSlot);
}