У меня есть 3 списка, к примеру ( корзина, белые яблоки и красные яблоки) , Могу ли я записать 2 списка (белых и красных яблок ) в одну "корзину". // Просто я хочу , потом перебирать эту корзину яблок и сверять к какому списку он раньше относился
public class White : IApple
{
int IApple.Age { get; set; }
public White()
{
int quantityWhite=2;
List<White> white = new List<White>();
for (int i = 0; i < quantityWhite ; i++) { white.Add(new White()); }
}
}
public class Red : IApple
{
int IApple.Age { get; set; }
public Red()
{
int quantityRed=2;
List<Red> red = new List<Red>();
for (int i = 0; i < quantityRed ; i++) { red.Add(new Red()); }
}
}
public interface IApple
{
int Age {get;set;}
}
public class CBasket
{
private int cycle;
private List<IApple> content; // чтобы вот тут находились и белые и красные яблоки)
public void CycleExcute(CBasket iBasket) // Excute my project
{
int appleIndex = 0;
while (appleIndex < iBasket.content.Count) // Проверка яблок в корзине
{
IApple nextApple = iBasket.content[appleIndex];
nextApple.Age++;
if (nextApple is White)
{
//
}
}
}
}
Навскидку так может получиться:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int quantity = 2;
var r = new Red();
var w = new White();
for (int i = 0; i < quantity; i++)
{
r.red.Add(new Red());
w.white.Add(new White());
}
var b = new CBasket();
b.AddToBasket(r.red);
b.AddToBasket(w.white);
b.CycleExcute();
Console.ReadLine();
}
}
public class White : IApple
{
int IApple.Age { get; set; }
public List<IApple> white = new List<IApple>();
}
public class Red : IApple
{
int IApple.Age { get; set; }
public List<IApple> red = new List<IApple>();
}
public interface IApple
{
int Age { get; set; }
}
public class CBasket
{
private int cycle;
private List<IApple> content = new List<IApple>(); // чтобы вот тут находились и белые и красные яблоки)
public void CycleExcute() // Excute my project
{
for (int i = 0; i < content.Count; i++)
{
IApple nextApple = content[i];
nextApple.Age++;
if (nextApple is White)
{
Console.WriteLine("White");
}
if (nextApple is Red)
{
Console.WriteLine("Red");
}
}
}
public void AddToBasket(List<IApple> newApples)
{
content = content.Concat(newApples).ToList();
}
}
}
ПС : никогда в конструкторе класса не стоит создавать еще экземпляр этого же класса.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей