0

BindingList変数があり、それに追加された最後のアイテムを取得する必要があります。次のコードは機能しますが、もっと良い方法や欠けているものがあるかどうか知りたいです。

WorkoutScheduleList[WorkoutScheduleList.IndexOf(WorkoutScheduleList[(WorkoutScheduleList.Count - 1)])].WorkoutScheduleID);

読むのは簡単ではありませんが、基本的にはリストのカウントを取得して1を減算し、それをIndexOfメソッドに使用して、リストに追加された最後のアイテムを取得します。

4

2 に答える 2

2

バインディングリストのListChangedイベントを処理し、追加されたアイテムの参照を保持できます。

例:

class Program
{
    static object last_item;

    static void Main(string[] args)
    {
        BindingList<object> WorkoutScheduleList = new BindingList<object>();

        WorkoutScheduleList.ListChanged += (s, e) => {
            if (e.ListChangedType == ListChangedType.ItemAdded)
                last_item = WorkoutScheduleList[e.NewIndex];
        };

        WorkoutScheduleList.Add("Foo");
        WorkoutScheduleList.Add("Bar");
        WorkoutScheduleList.Insert(1, "FooBar");

        //prints FooBar
        Console.WriteLine(String.Format("last item added: {0}", last_item));
    }
}
于 2012-06-06T14:49:28.387 に答える
0
var lastItem = WorkoutScheduleList[WorkoutScheduleList.Count - 1].WorkoutScheduleID;

またはLinQを使用する

var lastLinqItem = WorkoutScheduleList.Last().WorkoutScheduleID;
于 2012-06-06T14:11:26.317 に答える