Frage

Wie unten Codes (Ich brauche refoctoring)

einzukapseln
    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; } }
}

Ich habe diese Klasse unter

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);
                                }

Ich brauche wie folgt aus:

  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;

        }

Keine korrekte Lösung

Andere Tipps

(ich verstehe nicht ganz, wie die ersten beiden Beispiele auf den dritten beziehen ... sie scheinen nicht etwas gemeinsam zu teilen)

Also, was zur Zeit bricht? Das größte Problem, das ich sehe, ist, dass (IIRC) zu sein zuverlässig verwendbar mit Session (mit verschiedenen Back-End-Implementierungen) das Einzelteil muss serialisierbar sein (var BinaryFormatter), aber das kann so einfach sein wie Markierung mycollection mit [Serializable].

Für Informationen mycollection ist ein verwirrender Name für etwas, das eine ist Zeile Einheit , nicht die tatsächliche Sammlung - und wenn Sie C 3.0 # Sie konnten die Dinge ein wenig vereinfachen mit automattically implementiert Eigenschaften:

[Serializable]
public class SomeSensibleName
{
    public DateTime Tarih {get;set;}
    public int Sira {get;set;}
    public int VisitCount {get;set;}
}

Allerdings; es ist nicht klar (aus dem Code), ob das irgendetwas ändern wird. Bitte können Sie klären, was zur Zeit geschieht?

Wenn ich richtig verstehe, dann ist dies das Refactoring Sie suchen:

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());
    });
}

Beachten Sie, dass für diese, um Sie .NET Framework 3.x ausgeführt werden müssen, arbeiten (VS2008).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top