استفاده از آرایه رو من نمیتونم اونطور که یه معلم آموزش میده بگم چون جز مسائل الفبایی برنامه نویسیه
اما بهتون اطمینان میدم که راحت میتونید با جستجو توی نت، کارتون رو راه بندازید.
من بعد از چند سال که برگشتم سر برنامه نویسی دیدم سی شارپ چقدر امکانات داره: Array, List, Dictionary رو خیلی راحت تر از آرایه های معمولی میشه کنترلشون کرد.
از linq هم دستور select رو بلد باشین کافیه تا بتونید آرایه، لیست یا دیکشنری رو فیلتر کنید.
این یه کلاس فرضی که توی ربع ساعت نوشته شده و میتونه بهتون ایده بده که چطوری مورد به لیست اضافه کنید یا لیست رو فیلتر، ذخیره و بازیابی کنید:
class MyClass
{
public struct stDownload
{
public int id;
public DateTime dt;
public string url;
public bool Saved;
}
public List<stDownload> AllDownloads = new List<stDownload>(0);
private int MaxId = 0;
public void LoadFromDatabase()
{
SqlDataReader dr = new SqlDataReader();
//Write some code to get data from database
while (dr.Read())
{
int id = (int)dr["Id"];
AllDownloads.Add(new stDownload()
{
id = id,
url = dr["fURL"].ToString(),
dt = (DateTime)dr["fDate"],
Saved = true
});
if (id > MaxId) MaxId = id;
}
}
public void SaveToDatabase()
{
var unsavedDownloads = from dl in AllDownloads
where !dl.Saved
select dl;
foreach (stDownload dl in unsavedDownloads)
{
//Write your code here
}
}
public void AddDownload(string Url)
{
AllDownloads.Add(new stDownload()
{
id = ++MaxId,
dt = DateTime.Now,
url = Url,
Saved = false
});
}
public List<stDownload> SelectTodayImages(int Count)
{
var downloads = from dl in AllDownloads
where
dl.dt.Date >= DateTime.Now.Date &&
(dl.url.EndsWith(".jpeg") || dl.url.EndsWith(".jpg"))
orderby dl.dt descending
select dl;
List<stDownload> Top10 = downloads.Take(10).ToList<stDownload>();
return Top10;
}
}
توضیح در مورد فیلتر کردن لیست:
توی تابع SaveToDatabase فقط مواردی از لیست انتخاب شدن که هنوز Save نشدن تو بانک.
توی تابع SelectTodayImages هم مواردی که تاریخشون مال امروزه و آدرسشون به jpg و jpeg ختم میشه انتخاب شدن و تاریخشون از جدید به قدیمی مرتب شده (descending یعنی مرتب سازی نزولی)
بعد برای اینکه موارد زیاد نشن فقط 10تاشون برگردونده شده.
البته خواستم پارامتر Count رو بذارم جای عدد 10 ولی چون مطلب آموزشیه، عدد 10 گویاتره!