我想從兩個列表中創建一個ArrayList,它們的對象是從SQL Server中的數據庫中提取的。從SQL Server填充列表,然後將它們的對象存儲到ArrayList中
這是我用來填充兩個列表代碼:
FoodStoreEntities context = new FoodStoreEntities();
List<Supplier> suppliers = context.Suppliers.ToList();
List<Manufacturer> manufacturers = context.Manufacturers.ToList();
這是如何,我想將它們添加到一個ArrayList:
ArrayList supplierManufacturer = new ArrayList();
foreach (Supplier item in suppliers)
{
supplierManufacturer.Add(item.vendor);
supplierManufacturer.Add(item.supplier_email);
}
foreach (Manufacturer item in manufacturers)
{
supplierManufacturer.Add(item.mfg);
supplierManufacturer.Add(item.mfgDiscount);
}
然而,當我嘗試顯示ArrayList,類型似乎不匹配。我得到「不匹配」當我運行控制檯:
static void Display(ArrayList aryList)
{
foreach (Object obj in aryList)
{
if (ObjectContext.GetObjectType(obj.GetType()) == typeof(Supplier))
{
Supplier supplier = (Supplier)obj;
Console.WriteLine(supplier.vendor + " " + supplier.supplier_email);
}
else if (ObjectContext.GetObjectType(obj.GetType()) == typeof(Manufacturer))
{
Manufacturer manufacturer = (Manufacturer)obj;
Console.WriteLine(manufacturer.mfg + " " + manufacturer.mfgDiscount);
}
else
Console.WriteLine("no match");
}
}
我不知道發生了什麼事,並試圖尋找相關的話題,但它也沒有用。請幫忙。謝謝!
請注意,您插入Supplier.vendor,但希望獲得供應商。 – User1234
在調試模式下運行它,並使用立即窗口http://stackoverflow.com/questions/794255/how-do-you-use-the-immediate-window-in-visual-studio看看你得到什麼類型。關鍵是「添加(item.vendor);」當你不添加項目本身,但它的屬性。 – krtek
@krtek:我似乎在增加它的屬性,而不是項目本身。我已經改變它只是項目,它的作品。謝謝你的澄清! – Andrew