如何从 Foreach 循环中获得两个单独的结果
How to get two separate results from a Foreach loop
我已将 monthCalender 日期缩短为所选日期值。
string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
string takeDMCDay = dMC.Substring(0, 2);
monthCalender = Convert.ToInt32(takeDMCDay)
我有一个列表,它存储从 class communityevents 对象(日期、时间、名称、描述等)列表中的文本文件读取的字段
其中一个字段称为 e.Day(即一个月中的第几天)
当用户在日历上选择一天时,它会用当天到期的 e.Name 个事件填充一个组合框。
我遇到的问题出在 CreateEventList 方法中。
如果该值为 true,它将执行我想要的操作。
但如果我取消注释不等于方法,它会覆盖第一个
请问我该如何解决这个问题,我猜问题出在 foreach communityEvent 上,但我不知道如何让一个或另一个运行,但我已经尝试过其他方法,如果,否则,请尝试 while 循环等等,但我在这里。?
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());
}
}
}
我已将 monthCalender 日期缩短为所选日期值。
string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
string takeDMCDay = dMC.Substring(0, 2);
monthCalender = Convert.ToInt32(takeDMCDay)
我有一个列表,它存储从 class communityevents 对象(日期、时间、名称、描述等)列表中的文本文件读取的字段
其中一个字段称为 e.Day(即一个月中的第几天)
当用户在日历上选择一天时,它会用当天到期的 e.Name 个事件填充一个组合框。
我遇到的问题出在 CreateEventList 方法中。 如果该值为 true,它将执行我想要的操作。 但如果我取消注释不等于方法,它会覆盖第一个
请问我该如何解决这个问题,我猜问题出在 foreach communityEvent 上,但我不知道如何让一个或另一个运行,但我已经尝试过其他方法,如果,否则,请尝试 while 循环等等,但我在这里。?
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());
}
}
}