PPeddaMedlem sedan juni 20006 031 inlägg Frågan#1 Jag har en list som jag har fyllt med data ifrån en xml fil
ZPSProjects.cs (förkortad version)
public class ZPSProjects
{
#region Private Member Variables
private string projectID;
...
#endregion
#region Constructors
public ZPSProjects() { }
public ZPSProjects(string projectID, ...)
{
this.projectID = projectID;
...
}
#endregion
#region Public Properties
public string ProjectID
{
get { return projectID; }
set { projectID = value; }
}
...
}
ZPSProjectsBLL.cs
public class ZPSProjectsBLL
{
public List<ZPSProjects> GetProjects()
{
ProjectDAL dal = new ProjectDAL();
return dal.GetProjects();
}
}
ZPSProjectsDAL.cs (förkortad version)
public class ProjectDAL
{
public List<ZPSProjects> GetProjects()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(ConfigurationManager.AppSettings["URLZPSList"]);
XmlNodeList projectID = xmlDoc.GetElementsByTagName("Project_x0020_ID");
...
List<ZPSProjects> results = new List<ZPSProjects>();
for (int i = 0; i < projectID.Count; ++i)
{
ZPSProjects zpsProjects = new ZPSProjects();
zpsProjects.ProjectID = (projectID[i] == null) ? "" : projectID[i].InnerText;
...
results.Add(zpsProjects);
}
return results;
}
}
Hur gör jag för att bygga ut så jag kan hämta ett specifikt projekt?
Jag har projectID eller index nummret att välja på när jag ska hämta ett projekt.
CatZMedlem sedan jan. 20022 440 inläggAnvänd linq?
var query = from r in results //din lista med ZPSProjects
where r.ProjectID == 1 //Det du vill söka efter
select r;
Sedan kan du ju returnera precis vad tusan du vill med.
query.ToList(); //Returnerar en liadan lista som du redan har (om du vill databinda)
query.FirstOrDefault(); //returnerar en entitet om du vill göra något specifikt med resultatet.
PPeddaMedlem sedan juni 20006 031 inlägg Tyvärr, Framework 2.0 så jag kan glömma Linq
CatZMedlem sedan jan. 20022 440 inläggAh ok, då får du använda de inbyggda funktionerna istället :)
Du kan söka en .NET 2.0 lista genom att hämta en enumerator för listan.
results.GetEnumerator().Current.ProjectID
Resten kan du säkert "LISTA" ut själv ;)
CatZMedlem sedan jan. 20022 440 inläggTja, du kan ju loopa igenom listan också
List<ZPSProjects> tmpList = new List<ZPSProjects>();
foreach (ZPSProjects proj in results)
{
tmpList.Add(proj);
}
dAEkMedlem sedan feb. 20041 816 inläggIstället för en lista, kan du inte köra med hashtable eller vad det nu heter i .NET som motsvarar Map<K, V> i Java?