Get previous/next item of a given item in a List<>

后端 未结 11 1286
余生分开走
余生分开走 2021-02-12 03:18

Says I have this List : 1, 3, 5, 7, 9, 13

For example, given value is : 9, the previous item is 7 and the next item is 13

How can I achieve this using C#?

11条回答
  •  囚心锁ツ
    2021-02-12 04:16

    To make it a kind of Circular list, try this:

    public class NavigationList : List
    {
        private int _currentIndex = -1;
        public int CurrentIndex
        {
            get
            {
                if (_currentIndex == Count)
                    _currentIndex = 0;
                else if (_currentIndex > Count - 1)
                    _currentIndex = Count - 1;
                else if (_currentIndex < 0)
                    _currentIndex = 0;
    
    
                return _currentIndex;
            }
    
            set { _currentIndex = value; }
        }
    
        public T MoveNext
        {
            get { _currentIndex++; return this[CurrentIndex]; }
        }
    
        public T Current
        {
            get { return this[CurrentIndex]; }
        }
    }
    

提交回复
热议问题