Ich versuche im Wesentlichen, eine benutzerdefinierte Klasse aus einer Liste von Objekten zurückzuziehen, ohne meine Liste freizulegen. Unten ist, wie ich es zur Arbeit gebracht habe, aber ich denke nicht, dass dies der eleganteste Weg ist. Außerdem - wie rufe ich eine Instanz dieses Aufrufs auf, ohne eine neue Klasse zu instanziieren? Ich möchte alles in einer Linie machen.C# Die beste Methode, eine Methode unter Beibehaltung einer privaten Liste verfügbar zu machen
Ich möchte in der Lage sein, meine Anfrage in einer Linie zu nennen
Library.ConnectionController cc = new Library.ConnectionController();
cc = cc.Request("z");
Und hier ist meine Klasse
class Library
{
public ConnectionController Retrieve_Controller_By_Domain(string Domain)
{
ConnectionController cc = new ConnectionController();
cc = cc.Request(Domain);
return cc;
}
internal class ConnectionController
{
public string UserName { get; set; }
public string Password { get; set; }
public string ProjectName { get; set; }
public string Domain { get; set; }
public string SQLServer { get; set; }
public string SQLDatabase { get; set; }
public ConnectionController Request(string Domain)
{
InternalLibrary il = new InternalLibrary();
ConnectionController Requested = il.ccList.Where(m => m.Domain.ToUpper() == Domain.ToUpper())
.Select(m => new ConnectionController
{
UserName = m.UserName,
Password = m.Password,
ProjectName = m.ProjectName,
Domain = m.Domain,
SQLServer = m.SQLServer,
SQLDatabase = m.SQLDatabase
}).ToList()[0];
return Requested;
}
}
private class InternalLibrary
{
public List<ConnectionController> ccList
{
get
{
return (new List<ConnectionController> {
new ConnectionController() {
UserName = "x",
Password="y",
ProjectName="r",
Domain = "z",
SQLDatabase = "a",
SQLServer = "b"
}
});
}
}
}
}