2017-04-06 29 views
-1

我在C#中用两种对象类型创建了一个列表,我需要显示类型为ClientPhysique的对象。 ClientPhysiqueClientMoral扩展了Client类。如何知道列表中的对象的类型?

public List<Client> Clients = new List<Client>(); 

#region Methodes 
// Ajouter un Client: 
public void Ajouter() 
{ 
    ClientPhysique CP = new ClientPhysique("EE111111", "Ahmed", "Yassine", 1, 06020202, "Rue Gmasa, Marrakech, 40000"); 
    ClientMorale CM = new ClientMorale("A1414", "Rue mhamid, A6, Marrakech, 40160", 12121212, 1000000, 6, 06060606, "Titwan de Titwan"); 
    Clients.Add(CP); 
    Clients.Add(CM); 
} 
+0

'item.GetType()。Name'? – Berkay

+0

“ClientPhysique和ClientMoral扩展了客户端类。”那么你们都已经知道在你的清单中只有'Cleint'级别的例子,不是吗?那么你的问题是什么? – HimBromBeere

+0

我没有写完整的代码。项目表示列表内的项目。 @HimBromBeere – Berkay

回答

3

你可以使用Oftype如下

var result = Clients.OfType<ClientPhysique>(); 
    foreach (var element in result) 
    { 

    } 
+0

非常感谢。 –

4

你可以缩小你的清单与LINQ方法OfType。它允许您迭代具有特定类型的列表项,忽略所有其他项:

foreach(ClientPhysique item in Clients.OfType<ClientPhysique>()) { 
    //Do something with your item 
} 
+0

谢谢!有用。 –

相关问题