我在这里上课:
public class CP_VIP_Preview_TimeSlots
{
public int id { get; set; }
[DisplayName("Time Slots")]
public string timeSlot { get; set; }
[DisplayName("Date Slots")]
public string dateSlot { get; set; }
}
public class CPVIPPreviewTimeSlots : DbContext
{
public DbSet<CP_VIP_Preview_TimeSlots> Data { get; set; }
}
现在我要做的是将类的每个项目放入List中,我创建了这个列表:
List<string> newList = new List<string>();
我希望添加到此列表中的是id和timeSlot以及DateSlot,但我希望timeSlot和DateSlot为组合字符串。所以我的新列表将有id和一些名为timeDateSlot的字符串...我希望这有意义,我该怎么做?
答案 0 :(得分:0)
如果您有一个名为CP_VIP_Preview_TimeSlots
的{{1}}:
test
但是,您无法为这些字符串选择标识符。
答案 1 :(得分:0)
如果您确实不想存储TimeSlots类的列表,那么您需要的是KeyValuePair
的列表。
List<KeyValuePair<int,string>>
在此您可以添加:
List<KeyValuePair<int,string>> myList = new List<KeyValuePair<int,string>>();
myList.Add(new KeyValuePair<int, string>(test.id.ToString(), test.timeSlot + test.dateSlot));
答案 2 :(得分:0)
List<CP_VIP_Preview_TimeSlots> newList = new List<CP_VIP_Preview_TimeSlots>();
foreach(var x in CPVIPPreviewTimeSlots){ //whatever your db data is
newList.add(x); //add an instance to list
}
这样的事可能会有所帮助。然后你可以这样显示,
var x = newList.first();
string combined = x.timeSlot + x.dateSlot;
答案 3 :(得分:0)
如果您想使用Id识别数据,可以使用以下代码
foreach(CP_VIP_Preview_TimeSlots d in CPVIPPreviewTimeSlots.Data)
{
List<KeyValuePair<int,string>> lstIdWiseData = new List<KeyValuePair<int,string>>();
lstIdWiseData.Add(new KeyValuePair<int,string>(d.Id, string.Concat(d.timeSlot, d.dateSlot )));
}
如果您的ID不是唯一身份,则可以在上面的代码中将KeyValuePair<int,string>
替换为Tuple<int,string>
答案 4 :(得分:0)
您可以在类中添加额外的属性,以获取可在任何位置访问的正确字符串:
public class CP_VIP_Preview_TimeSlots
{
public int id { get; set; }
[DisplayName("Time Slots")]
public string timeSlot { get; set; }
[DisplayName("Date Slots")]
public string dateSlot { get; set; }
public string combinedString
{
get
{
return timeSlot + " " + dateSlot;
}
}
}
这也可以在Array.findIndex
DropDownList1.DataSource = newList;
DropDownList1.DataTextField = "combinedString";
DropDownList1.DataValueField = "timeSlot";
DropDownList1.DataBind();