如何从 Foreach 循环中获取两个单独的结果
本文关键字:两个 单独 结果 Foreach 循环 获取 | 更新日期: 2023-09-27 18:36:05
>我已将月份日历日期缩短为所选日期值。
string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
string takeDMCDay = dMC.Substring(0, 2);
monthCalender = Convert.ToInt32(takeDMCDay)
我有一个列表,它将从文本文件中读取的字段存储在类社区事件对象列表(日期,时间,名称,描述等)中
其中一个字段称为 e.Day(即一个月中的某一天)
当用户在月份日历上选择某一天时,它会用当天到期的事件 e.Name 填充组合框。
我遇到的问题出在创建事件列表方法中。如果值为真,它就会做我想要的。但是如果我取消注释不等于方法,它将覆盖第一个
请问我该如何解决这个问题,我可以猜到问题是foreach社区事件是问题所在,但是我迷失在如何让一个或另一个而不是两个都运行中,我已经尝试过其他,如果,如果,如果,尝试了循环等等,但我在这里。?
private void CreateEventList()
{
events = ExtractData();
eventComboBox.Items.Clear();
string eventTrue = ("-Events-");
string descriptTrue = ("Pick an event");
string eventFalse = ("-No Event-");
string descriptFalse = ("-No events today-");
foreach (communityEvent e in events)
{
if (monthCalender == e.Day)
{
eventComboBox.Items.Insert(0, eventTrue);
eventComboBox.Items.Add(e.GetName());
}
//else if (monthCalender != e.Day)
//{
// eventComboBox.Items.RemoveAt(0);
// eventComboBox.Items.Insert(0, eventFalse);
//}
}
}
如果我
理解正确,如果所选月份没有事件,您希望列表中-No Event-
。否则,您需要匹配项列表。
那将是接近
private void CreateEventList()
{
events = ExtractData();
eventComboBox.Items.Clear();
string eventTrue = ("-Events-");
string descriptTrue = ("Pick an event");
string eventFalse = ("-No Event-");
string descriptFalse = ("-No events today-");
if ( !events.Any( e => e.Day == monthCalender ) )
{
// no occurrences
eventComboBox.Items.Insert(0, eventFalse);
}
else
{
// there are some occurrences
eventComboBox.Items.Add(eventTrue);
foreach (communityEvent e in events)
{
if (monthCalender == e.Day)
{
eventComboBox.Items.Add(e.GetName());
}
}
}