Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加到另一个列表集合后,如何添加到列表集合?_C#_List - Fatal编程技术网

C# 添加到另一个列表集合后,如何添加到列表集合?

C# 添加到另一个列表集合后,如何添加到列表集合?,c#,list,C#,List,理想情况下,我希望添加到NumberList,而不删除它,生成另一个NumberList,并将其添加到NumberRanges,List //How to add 8 to NumberRanges.NumberGroup.GroupEven //How to add 9 to NumberRanges.NumberGroup.GroupOdd AddEvenNumberToRange(oNumberRanges, 8); AddOddNumberToRange(oNumberRanges, 9

理想情况下,我希望添加到NumberList,而不删除它,生成另一个NumberList,并将其添加到NumberRanges,List

//How to add 8 to NumberRanges.NumberGroup.GroupEven
//How to add 9 to NumberRanges.NumberGroup.GroupOdd
AddEvenNumberToRange(oNumberRanges, 8);
AddOddNumberToRange(oNumberRanges, 9);


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace AddToList
{
    class Program
    {
        static void Main(string[] args)
        {
            NumberList oGroupEven = new NumberList();
            InitialLoadEvenNumbers(oGroupEven);
            NumberList oGroupOdd = new NumberList();
            InitialLoadOddNumbers(oGroupOdd);

            NumberRanges oNumberRanges = new NumberRanges();
            CombineNumberRanges(oGroupEven, oGroupOdd, oNumberRanges);
            OutPutRanges(oNumberRanges);
            Console.ReadKey();

            //This code below will throw execption unitl implemented.
            //How to add 8 to NumberRanges.NumberGroup.GroupEven
            //How to add 9 to NumberRanges.NumberGroup.GroupOdd
            AddEvenNumberToRange(oNumberRanges, 8);
            AddOddNumberToRange(oNumberRanges, 9);
            OutPutRanges(oNumberRanges);

            Console.ReadKey();
        }

        private static void AddOddNumberToRange(NumberRanges oNumberRanges, int p)
        { 
            //I'm stuck on the best approach to add a number to existing collection
            throw new NotImplementedException();
        }

        private static void AddEvenNumberToRange(NumberRanges oNumberRanges, int p)
        {
            //I'm stuck on the best approach to add a number to existing collection
            throw new NotImplementedException();
        }


        private static void OutPutRanges(NumberRanges oNumberRanges)
        {
            foreach (NumberList olist in oNumberRanges)
            {
                foreach (int iNum in olist)
                {
                    Console.WriteLine(iNum.ToString());
                }
            }
        }

        private static void CombineNumberRanges(NumberList oGroupEven, NumberList oGroupOdd, NumberRanges oNumberRanges)
        {
            oNumberRanges.NumberGroups.Add(oGroupEven);
            oNumberRanges.NumberGroups.Add(oGroupOdd);
        }

        private static void InitialLoadOddNumbers(NumberList oGroupOdd)
        {
            oGroupOdd.Number.Add(3);
            oGroupOdd.Number.Add(5);
            oGroupOdd.Number.Add(7);
        }

        private static void InitialLoadEvenNumbers(NumberList oGroupEven)
        {
            oGroupEven.Number.Add(2);
            oGroupEven.Number.Add(4);
            oGroupEven.Number.Add(6);
        }
    }

    public class NumberList : IEnumerator, IEnumerable
    {

       public List<int> Number = new List<int>();

       #region GetEnumeratorSetup
       private int m_iPosition = -1;

       public IEnumerator GetEnumerator()
       {
           return Number.GetEnumerator();
       }

       public object Current
       {
           get
           {
               return Number;
           }
       }

       public bool MoveNext()
       {
            m_iPosition++;
            return true;
       }

       public void Reset()
       {
           m_iPosition = 0;
       }
       #endregion
    }

    public class NumberRanges: IEnumerator, IEnumerable
    {
        public List<NumberList> NumberGroups = new List<NumberList>();

        #region EnumerationSetup
        private int m_iPosition = -1;
        public object Current
        {
            get
            {
                return NumberGroups;
            }
        }

        public bool MoveNext()
        {
            m_iPosition++;
            return true;
        }

        public void Reset()
        {
            m_iPosition = 0;
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return NumberGroups.GetEnumerator();
        }
        #endregion
    }
}
//如何将8添加到NumberRanges.NumberGroup.GroupEven
//如何将9添加到NumberRanges.NumberGroup.GroupOdd
AddEventNumberToRange(oNumberRanges,8);
AddOddNumberToRange(oNumberRanges,9);
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用系统集合;
名称空间添加列表
{
班级计划
{
静态void Main(字符串[]参数)
{
NumberList ogroup偶数=新NumberList();
InitialLoadEvenNumber(OGroup偶数);
NumberList ogroupOqd=新NumberList();
InitialLoadOddNumber(oGroupOdd);
NumberRanges oNumberRanges=新的NumberRanges();
CombineNumberRanges(Ogroup偶数、Ogroup奇数、oNumberRanges);
输出范围(oNumberRanges);
Console.ReadKey();
//下面的代码将抛出执行选项unitl实现。
//如何将8添加到NumberRanges.NumberGroup.group偶数
//如何将9添加到NumberRanges.NumberGroup.GroupOdd
AddEventNumberToRange(oNumberRanges,8);
AddOddNumberToRange(oNumberRanges,9);
输出范围(oNumberRanges);
Console.ReadKey();
}
私有静态void AddOddNumberToRange(NumberRanges oNumberRanges,int p)
{ 
//我一直在寻找向现有收藏中添加数字的最佳方法
抛出新的NotImplementedException();
}
专用静态void addEventNumberToRange(NumberRanges oNumberRanges,int p)
{
//我一直在寻找向现有收藏中添加数字的最佳方法
抛出新的NotImplementedException();
}
专用静态无效输出范围(NumberRanges oNumberRanges)
{
foreach(ONUMBERANGES中的数学家)
{
foreach(在olist中为int iNum)
{
Console.WriteLine(iNum.ToString());
}
}
}
私有静态无效组合EnumberRanges(NumberList Ogroup偶数、NumberList Ogroup奇数、NumberRanges oNumberRanges)
{
oNumberRanges.NumberGroups.Add(ogroup偶数);
oNumberRanges.NumberGroups.Add(oGroupOdd);
}
私有静态void initialLoadOddNumber(NumberList oGroupOdd)
{
oGroupOdd.Number.Add(3);
oGroupOdd.Number.Add(5);
oGroupOdd.Number.Add(7);
}
私有静态void initialLoadEvenNumber(NumberList Ogroup偶数)
{
Ogroup偶数.Number.Add(2);
Ogroup偶数.Number.Add(4);
Ogroup偶数.Number.Add(6);
}
}
公共类编号列表:IEnumerator,IEnumerable
{
公共列表编号=新列表();
#区域GetEnumerators设置
私有int m_i位置=-1;
公共IEnumerator GetEnumerator()
{
返回编号。GetEnumerator();
}
公共对象流
{
得到
{
返回号码;
}
}
公共图书馆
{
m_i位置++;
返回true;
}
公共无效重置()
{
m_i位置=0;
}
#端区
}
公共类编号排列:IEnumerator,IEnumerable
{
public List NumberGroups=新列表();
#区域枚举设置
私有int m_i位置=-1;
公共对象流
{
得到
{
返回数字组;
}
}
公共图书馆
{
m_i位置++;
返回true;
}
公共无效重置()
{
m_i位置=0;
}
IEnumerator IEnumerable.GetEnumerator()
{
返回NumberGroups.GetEnumerator();
}
#端区
}
}
列表
确实是一条路(正如斯维克所指出的),但如果你必须这样做,在我看来,以下是最简单的:

private static void AddOddNumberToRange(NumberRanges oNumberRanges, int p)
{ 
    oNumberRanges.NumberGroups[1].Number.Add(p);
}

private static void AddEvenNumberToRange(NumberRanges oNumberRanges, int p)
{
    oNumberRanges.NumberGroups[0].Number.Add(p);
}
这将在第二次调用OutPutRanges时产生以下输出:

2 4 6 8 3 5 7 9 2. 4. 6. 8. 3. 5. 7. 9 使用
列表

如果要使用
List
,则需要两个
List
(ogroup偶数和ogroup奇数),一个
List
用于oNumberRanges。如果需要,您可以实际删除Ogroup偶数和Ogroup奇数,并使用一个
List
来获取上述代码,并在Main方法中将其压缩为几行代码:

    static void Main(string[] args)
    {
        // Create the oNumberRanges and initialize it with the even and odd lists
        List<List<int>> oNumberRanges = new List<List<int>>() { new List<int>(){ 2, 4, 6}, new List<int>() { 3, 5, 7 } };

        OutPutRanges(oNumberRanges);
        Console.ReadKey();

        // Add 8 to the even list
        oNumberRanges[0].Add(8);
        // Add 9 to the odd list
        oNumberRanges[1].Add(9);

        OutPutRanges(oNumberRanges);

        Console.ReadKey();
    }

    private static void OutPutRanges(List<List<int>> oNumberRanges)
    {
        foreach (List<int> olist in oNumberRanges)
        {
            foreach (int iNum in olist)
            {
                Console.WriteLine(iNum.ToString());
            }
        }
    }
static void Main(字符串[]args)
{
//创建oNumberRanges并用偶数和奇数列表初始化它
List oNumberRanges=new List(){new List(){2,4,6},new List(){3,5,7};
输出范围(oNumberRanges);
Console.ReadKey();
//将8添加到偶数列表中
oNumberRanges[0]。添加(8);
//将9添加到单数列表中
oNumberRanges[1]。添加(9);
输出范围(oNumberRanges);
Console.ReadKey();
}
专用静态void输出范围(列表oNumberRanges)
{
foreach(列出ONUMBERANGES中的olist)
{
foreach(在olist中为int iNum)
{
Console.WriteLine(iNum.ToString());
}
}
}
这将产生以下输出:

2 4 6 3 5 7 2 4 6 8 3 5 7 9 2. 4. 6. 3. 5. 7. 2. 4. 6. 8. 3. 5. 7. 9
为什么要实现自己的集合?看起来直接使用
List
对你来说应该很好。这可能是一个家庭作业问题吗?如果是,请贴上标签。您是否需要使用提供的方法签名(AddEventNumberToRange(NumberRanges,int)和AddOddNumberToRange(NumberRanges,int)?感谢列表建议。Tim,这正是您想要的。是否可以命名列表,然后访问L