目前我正在使用Outlook,我正在遍历一个项目列表。
问题在这里: 我想在foreach循环中询问当前项目是否是最后一项 - 但我无法解决这类问题。
这是我的代码:
lastAppointmentItem = myAppointmentItems.GetLast();
foreach (Outlook.AppointmentItem myItem in myAppointmentItems)
{
// Types
// myAppointmentItems = Outlook.Items
// myItem = Outlook.AppointmentItem
if(myItem.Equals(lastAppointmentItem)) { do_something(); }
}
当我运行程序时,我得到了一个
System.Runtime.InteropServices.COMException:
// The last element of the list cannot be called
那我怎么能解决我的问题 - 你们知道吗?
提前致谢!
问候。
答案 0 :(得分:0)
我能够使用System.Linq类来获取.Last()方法的使用。我有以下示例工作。
namespace StackOverflow
{
class Program
{
static void Main(string[] args)
{
List<Test> tests = new List<Test>()
{
new StackOverflow.Test()
{
id = "test",
name = "name"
},
new StackOverflow.Test()
{
id = "test1",
name = "name1"
},
new StackOverflow.Test()
{
id = "test2",
name = "name2"
},
};
var lastItem = tests.Last();
foreach(Test test in tests)
{
if (test.Equals(lastItem))
{
Console.WriteLine("last item has been cycled to");
}
}
Console.ReadLine();
}
}
public class Test
{
public string id { get; set; }
public string name { get; set; }
}
}
答案 1 :(得分:0)
不要使用“foreach”循环使用从1到myAppointmentItems的“for”循环。不要忘记对其进行排序(myAppointmentItems.Sort(...)
)以获得有意义的顺序。