• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何添加对象Cbook上我的课CBooks不使用列表

c/c++ 来源:juanito 3次浏览

Cbooks有一个属性附加伤害“CTeam []团队”,它是固定大小的(8)。如果我要添加使用该对象,它在主:如何添加对象Cbook上我的课CBooks不使用列表

CBook A1 = new CBook("Title1", "Author1"); 
    CBook A2 = new CBook("Title1", "Author2"); 

    CBooks ArrayOfBooks = new CBooks(8); 
    ArrayOfBooks.Add(A1); 
    ArrayOfBooks.Add(A2); 

那么位置0和1 ocuppied,并从2到7的位置是空的。我想要做的是,使用一个变量“INT AUX = 0”,数这样的曾经占领的位置:

for (int k = 0; k < NumberOfTeams; k++) 
       { 
        if (Teams[k].Name=="") 
         Aux += 1; 
       } 

所以,奥克斯在这种情况下会是2,那么我想这样做“队[辅助] = A“,所以A会在位置2,现在我应该在我的数组中有三个对象。但我发现了“索引超出界限”


===========解决方案如下:

你的实现应该类似于此:

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     Element a = new Element("A"); 
     Element b = new Element("B"); 

     MyArray array = new MyArray(8); 

     array.Add(a); 
     array.Add(b); 

     Console.WriteLine(array.Count()); //2 Elements are in the array 
    } 
} 

//Sample element class. 
public class Element{ 

    public readonly String MyString; 

    public Element(String myString){ 
    MyString = myString; 
    } 
} 

//Sample array class. 
public class MyArray{ 

    private readonly Element[] myArray; 
    private int count; //Use a property here 

    public MyArray(int size){ 
     //Be careful -> check if size is >= 0. 
     myArray = new Element[size]; 
    } 

    public bool Add(Element element){ 
     if(myArray.Length == count) // return false if no more elements fit. 
      return false; 

      myArray[count] = element; 
      count++; 

     return true; 
    } 

    public int Count(){ 
    return count; 
    } 

} 

所以没有必要创建一个额外的计数循环。 “MyArray”类中的“count”变量始终保持正确的值。 无论如何,这段代码的实现或用例有点笨拙。 为什么你不能直接使用更安全的列表或其他东西。这将是一个更好的解决方案。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)