我有一個包含字符串,int和double的屬性的對象。 我有三個對象的實例:item1,item2,item 3.轉換對象的實例以便能夠循環通過
我可以通過說item1.name等打印出來的值 但是我怎樣才能通過對象循環並打印值? 我不認爲我可以將對象轉換爲列表或數組,因爲對象具有不同的類型 - 對嗎?
我有一個包含字符串,int和double的屬性的對象。 我有三個對象的實例:item1,item2,item 3.轉換對象的實例以便能夠循環通過
我可以通過說item1.name等打印出來的值 但是我怎樣才能通過對象循環並打印值? 我不認爲我可以將對象轉換爲列表或數組,因爲對象具有不同的類型 - 對嗎?
如果你的意思是他們都是同一類的實例,那麼在這種情況下你可以做什麼是非常基本的。如果是這種情況,您可以創建該類類型的列表。然後以任何您希望的方式遍歷對象,並且您將能夠打印出該類所包含的任何公共屬性。
var examples = new List<ExampleObject>()
{
new ExampleObject { ID = 1, Name = "Display" },
new ExampleObject { ID = 2, Name = "Display2" },
};
examples.ForEach(x => Console.WriteLine("id = {0}, name = {1}", x.ID, x.Name));
謝謝 - 工作 – Dashsa
如果它們都具有「名稱」屬性,則可以創建包含該屬性的接口。
public Interface IShowName
{
string Name { get; }
}
然後讓每個類型實現IShowName(根據你,他們已經這樣做)。然後,您可以將它們全部放入IShowName的列表中。
var myList = new List<IShowName>();
myList.Add(obj1);
myList.Add(obj2);
myList.Add(obj3);
foreach(var nameShower in myList)
{
System.Console.WriteLine(nameShower.Name);
}
感謝您的回答,但我不認爲它是我需要的 - 對象有7個屬性,我有3個屬性實例 - 所以我需要遍歷每個實例並顯示每個屬性的值。 _ 那有意義嗎? – Dashsa
那麼,對於一個給定的對象,你想寫出所有的屬性?你不知道對象的類型?這聽起來像反射在你的未來。 –
可以與反思這樣做:
foreach (PropertyInfo propertyInfo in obj1.GetType().GetProperties())
{
//If property is public
if (propertyInfo.CanRead)
{
object propValue = propertyInfo.GetValue(obj1, null);
System.Console.WriteLine(propValue.ToString());
}
}
你能澄清,如果所有的對象都是同一類型的? –
對象屬性是不同的類型 - 我有ObjectName.ID = int,ObjectName.Name =字符串等。 – Dashsa
是相同類型的item1,item2和item3嗎?如果是這樣,你可以製作一份清單。 –