Comment résumer la liste qui a la propriété de classe?
https://stackoverflow.com/questions/931649
Question
Comment résumer ci-dessous les codes (i besoin refoctoring)
public class mycollection
{
private DateTime tarih;
private int sira;
private int visitingcount;
public DateTime TARIH { get { return tarih; } set { tarih = value; } }
public int SIRA { get { return sira; } set { sira = value; } }
public int VISITINGCOUNT { get { return visitingcount; } set { visitingcount = value; } }
}
je l'ai utilisé cette classe ci-dessous
DataRow[] rows = dsChart.Tables[0].Select("TARIH>='" + DateGap1 + "' and TARIH<='" + DateGap2 + "'");
list = new List<mycollection>();
foreach (DataRow dr in rows)
{
mycollection mycol = new mycollection();
mycol.TARIH = Convert.ToDateTime(dr["TARIH"].ToString());
mycol.SIRA = Convert.ToInt32(dr["SIRA"].ToString());
mycol.VISITINGCOUNT = Convert.ToInt32(dr["VISITINGCOUNT"].ToString());
list.Add(mycol);
}
j'ai besoin comme ça:
public static void LoadDepartman(string departmanName)
{
List<StuffDepartman> li = new List<StuffDepartman>();
GetDepartman departman = new GetDepartman();
DataSet ds = departman.GetDepartmanA(departmanName);
foreach (DataRow dr in ds.Tables[0].Rows)
{
li.Add(new StuffDepartman
{
Name = dr["Name"].ToString(),
SurName = dr["SurName"].ToString(),
Address = dr["Address"].ToString(),
Phone = dr["Phone"].ToString(),
DepartmanName = dr["DepartmanName"].ToString(),
Salary =int.Parse( dr["Salary"].ToString()),
Married = dr["Married"].ToString()
}
);
}
HttpContext.Current.Session["Stuffs"] = li;
}
Pas de solution correcte
Autres conseils
(Je ne comprends pas bien comment les deux premiers exemples se rapportent à la troisième ... ils ne semblent pas partager quelque chose en commun)
Alors ce qui brise actuellement? Le plus gros problème que je vois est que (IIRC) soit fiable utilisable avec Session
(avec différentes implémentations de back-end) l'article doit être sérialisable (var BinaryFormatter
), mais peut être aussi simple que le marquage mycollection
avec [Serializable]
.
Pour info mycollection
est un nom déroutant pour quelque chose qui est une entité de ligne , pas la collecte réelle - et si vous avez C # 3.0 vous pourrait simplifier les choses un peu avec des propriétés automattically mises en œuvre:
[Serializable]
public class SomeSensibleName
{
public DateTime Tarih {get;set;}
public int Sira {get;set;}
public int VisitCount {get;set;}
}
Cependant; il est pas clair (à partir de votre code) si cela va changer quoi que ce soit. S'il vous plaît pouvez-vous préciser ce qui se passe actuellement?
Si je comprends bien, c'est le refactoring que vous recherchez:
DataRow[] rows = dsChart.Tables[0].Select("TARIH >='" + DateGap1 + "' and TARIH <='" + DateGap2 + "'");
List<mycollection> list = new List<mycollection>();
foreach (DataRow dr in rows)
{
list.Add(new mycollection
{
TARIH = Convert.ToDateTime(dr["TARIH"].ToString());
SIRA = Convert.ToInt32(dr["SIRA"].ToString());
VISITINGCOUNT = Convert.ToInt32(dr["VISITINGCOUNT"].ToString());
});
}
Gardez à l'esprit que pour que cela fonctionne, vous devez exécuter le 3.x .NET Framework (VS2008).