本文介绍了如何对通用类(如List)的值进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,
我想以字符串形式对月份进行排序,但我要从数据库中以整数形式对它们进行排序,并希望通过列表类对其进行排序.
我需要别人的帮助.
我的代码如下:
Hello guys,
I would like to sort months as string but I get them from the database as integer and I would like to sort them by list classes.
I need someone''s help.
My Codes are as below:
public int CompareTo(List_Data data)
{
return (this.Month - data.Month);
}
public class List_Dondur
{
List_Data data;
private List<List_Data> _list_Kiraci_Bilgi_Ay = new List<List_Data>();
public List<List_Data> List_Kiraci_Bilgi_Ay
{
get { return _list_Kiraci_Bilgi_Ay; }
set { _list_Kiraci_Bilgi_Ay = value; }
}
public List_Dondur()
{
List_Kiraci_Bilgi_Ay_1();
Sirala();
}
private void Sortit()
{
this.List_Kiraci_Bilgi_Ay.Sort();
}
public void List_Kiraci_Bilgi_Ay_1()
{
string daire_kiraci = "SELECT DRNO,CRKOD,OT_ID FROM DAIRE_KIRACI";
ArrayList ls_drno = Baglanti.Komut.IntegerKoleksiyonEkle(daire_kiraci, 0);
ArrayList ls_crkod = Baglanti.Komut.MetinKoleksiyonEkle(daire_kiraci, 1);
ArrayList ls_otid = Baglanti.Komut.IntegerKoleksiyonEkle(daire_kiraci, 2);
//List<List_Data> liste = new List<List_Data>();
string[] dz_ay = Enum.GetNames(typeof(Months));
for (int i = 0; i < ls_drno.Count; )
{
string crkod = ls_crkod[i].ToString();
int drno = Convert.ToInt32(ls_drno[i]);
string drad = Baglanti.Komut.MetinselVeriOku("SELECT DRAD FROM DAIRELER WHERE DRNO='" + drno + "'", 0);
string adi = Baglanti.Komut.MetinselVeriOku("SELECT ADI FROM CARILER WHERE CRKOD='" + crkod + "'", 0);
string soyadi = Baglanti.Komut.MetinselVeriOku("SELECT SOYADI FROM CARILER WHERE CRKOD='" + crkod + "'", 0);
string _array = "SELECT AY,IS_TUR_ID, SUM(BORC-ALACAK) FROM CRHAREKET WHERE CRKOD='" + crkod + "' GROUP BY AY,IS_TUR_ID";
ArrayList ls_ay = Baglanti.Komut.IntegerKoleksiyonEkle(_array, 0);
ArrayList ls_tur = Baglanti.Komut.IntegerKoleksiyonEkle(_array, 1);
ArrayList ls_tutar = Baglanti.Komut.DecimalKoleksiyonEkle(_array, 2);
int krdurum = Convert.ToInt32(ls_otid[i]);
decimal kira = 0;
decimal deposit = 0;
decimal elektrik = 0;
decimal su = 0;
string blok = Baglanti.Komut.MetinselVeriOku("SELECT BLADI FROM BLOKLAR B, DAIRELER D WHERE B.BLNO=D.BLNO AND D.DRNO='" + drno + "'", 0);
for (int k = 0; k < ls_ay.Count; )
{
kira = deposit = elektrik = su = 0;
int ay = Convert.ToInt32(ls_ay[k]);
string _ay = dz_ay[ay].ToString();
int turid = Convert.ToInt32(ls_tur[k]);
decimal miktar = Convert.ToDecimal(ls_tutar[k]);
if ((int)Islem_Id.DEPOSİT == turid)
deposit = miktar;
else if ((int)Islem_Id.ELEKTRİK == turid)
elektrik = miktar;
else if ((int)Islem_Id.KİRA == turid)
kira = miktar;
else if ((int)Islem_Id.SU == turid)
{
su = miktar;
}
this.List_Kiraci_Bilgi_Ay.Add(veri=new List_Data(drno, drad, crkod, adi, soyadi, kira, deposit, elektrik, su, blok, krdurum, _month, month));
k++;
}
i++;
}
veri.CompareTo(data);
}
decimal Deger_Dondur(string crkod, int is_turid)
{
string sorgu = "SELECT SUM(BORC-ALACAK) FROM CRHAREKET WHERE CRKOD='" + crkod + "' AND IS_TUR_ID='" + ıs_turid + "'";
string sayim = "SELECT COUNT(*) FROM CRHAREKET WHERE CRKOD='" + crkod + "' AND IS_TUR_ID='" + ıs_turid + "'";
if (Baglanti.Komut.IntegerVeriOku(sayim, 0) > 0)
return Baglanti.Komut.DecimalVeriOku(sorgu, 0);
else
return 0;
}
public List<List_Data> List_Kiraci_Bilgi()
{
string daire_kiraci = "SELECT DRNO,CRKOD,OT_ID FROM DAIRE_KIRACI";
ArrayList ls_drno = Baglanti.Komut.IntegerKoleksiyonEkle(daire_kiraci, 0);
ArrayList ls_crkod = Baglanti.Komut.MetinKoleksiyonEkle(daire_kiraci, 1);
ArrayList ls_otid = Baglanti.Komut.IntegerKoleksiyonEkle(daire_kiraci, 2);
List<List_Data> liste = new List<List_Data>();
string[] dz_ay = Enum.GetNames(typeof(Aylar));
for (int i = 0; i < ls_drno.Count; )
{
int krdurum = Convert.ToInt32(ls_otid[i]);
int drno = Convert.ToInt32(ls_drno[i]);
string crkod = ls_crkod[i].ToString();
string drad = Baglanti.Komut.MetinselVeriOku("SELECT DRAD FROM DAIRELER WHERE DRNO='" + drno + "'", 0);
string adi = Baglanti.Komut.MetinselVeriOku("SELECT ADI FROM CARILER WHERE CRKOD='" + crkod + "'", 0);
string soyadi = Baglanti.Komut.MetinselVeriOku("SELECT SOYADI FROM CARILER WHERE CRKOD='" + crkod + "'", 0);
decimal kira = Deger_Dondur(crkod, 1);
decimal deposit = Deger_Dondur(crkod, 2);
decimal elektrik = Deger_Dondur(crkod, 3);
decimal su = Deger_Dondur(crkod, 4);
string blok = Baglanti.Komut.MetinselVeriOku("SELECT BLADI FROM BLOKLAR B, DAIRELER D WHERE B.BLNO=D.BLNO AND D.DRNO='" + drno + "'", 0);
liste.Add(new List_Data(drno, drad, crkod, adi, soyadi, kira, deposit, elektrik, su, blok, krdurum));
i++;
}
return liste;
}
}
public enum Months
{
OCAK = 1,
ŞUBAT = 2,
MART = 3,
NİSAN = 4,
MAYIS = 5,
HAZİRAN = 6,
TEMMUZ = 7,
AĞUSTOS = 8,
EYLÜL = 9,
EKİM = 10,
KASIM = 11,
ARALIK = 12
}
推荐答案
private void Sortit()
{
this.List_Kiraci_Bilgi_Ay.Sort(
(item1,item2) => {
return item1.Month.CompareTo(item2.Month);
}
);
}
这篇关于如何对通用类(如List)的值进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!