كيفية تغليف القائمة التي لديها خاصية الفئة؟

StackOverflow https://stackoverflow.com/questions/931649

  •  06-09-2019
  •  | 
  •  

سؤال

كيفية التغلب على الرموز أدناه (أحتاج 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; } }
}

لقد استخدمت هذه الفئة أدناه

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

أحتاج هكذا:

  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;

        }

لا يوجد حل صحيح

نصائح أخرى

(لا أفهم تماما كيف تتعلق الأولان الأولان بالثالثة ... لا يبدو أنهم لا يشاركون أي شيء مشترك)

إذن ما يكسر حاليا؟ القضية الأكبر التي يمكنني رؤيتها هي أن (IIRC) ليكون بثقة قابل للاستخدام مع Session (مع تطبيقات نهاية عودة مختلفة) يجب أن يكون العنصر قابل للتسلسل (VAR BinaryFormatter)، ولكن قد يكون بهذه البساطة مثل العلامات mycollection مع [Serializable].

للمعلومات mycollection هو اسم مربك لشيء ما كيان الصف, ، وليس المجموعة الفعلية - وإذا كان لديك C # 3.0 يمكنك تبسيط الأمور قليلا مع الخصائص المنفذة بأغناطيسيا:

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

ومع ذلك؛ ليس واضحا (من التعليمات البرمجية الخاصة بك) ما إذا كان هذا سيغير أي شيء. من فضلك يمكنك توضيح ما يحدث حاليا؟

إذا فهمت بشكل صحيح، فهذا هو إعادة التدوير الذي تبحث عنه:

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

ضع في اعتبارك أنه من أجل العمل الذي يجب عملك أن تقوم بتشغيل .NET Framework 3.x (VS2008).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top