none
Grublama RRS feed

  • Genel Tartışma

  • Elimde 9 adet string veri var         Ör: "A", "B" ,"C","D","E","F","G","H","I" 

    ben bu degerleri "A", "B" ,"C","D" gelirse 1 degeri döndürsün 

     ,"E","F","G" degerleri gelirse 2 döndürsün

    "H","I"  degeri gelirse 3 döndürsün istiyorum

    hangi veri yapısı ile bu degerleri grublayabilirim ben DataTable yapmayı uygun gördüm sizce hangisini yapmalıyım 

    şimdi input olarak A degeri girildigi zaman 1 degerini döndürmesini istiyorum . 

    13 Kasım 2020 Cuma 06:21

Tüm Yanıtlar

  • eğer veri tabanından geliyorsa tabloya group diye bir kolon ekleyebilirsiniz. gelmiyorsa if veya switch case işinizi görür
    13 Kasım 2020 Cuma 07:16
  • 	public static int gett(string key)
    	{
    	   int result = 0;
    	  if (key == "A" || key == "B" || key == "C" || key == "D")
    		  result =1;
    		else if ( key == "E" || key == "F" || key == "G")
    			result=2;
    		else if (key == "H" || key == "I")
    			result=3;		
    		return result;
    	}

    13 Kasım 2020 Cuma 07:22
  • public int UsageClass(string frequencyValue)

      string[] frequency = { "Her Gün < 30 dakika Her Hafta < 2 saat Her Ay < 1 gün Her Sene < 5 gün" ,
                "Her Gün 30-120 dakika", "Her Hafta 2-8 saat", "Her Ay 1-6 gün", "Her Sene 15 gün-2 ay",
                "Her Gün 2-6 saat", "Her Hafta 1-3 gün", "Her Ay 6-15 gün", "Her Sene 2-5 ay",
                "Her Gün > 6 saat", "Her Hafta > 3 gün", "Her Ay > 15 gün", "Her Sene > 5 ay",
                };
                for (int i = 0; i < frequency.Length; i++)
                {
                    if (frequency[i].Contains(frequencyValue))
                    {
                        return i + 1;
                    } 
                }

    Cevabınız için teşekkür ederim verilerim string olarak uzun oldugu için if koşulu ile yapmayı uygun görmedim ben bu şekilde yaptım . Cevabınız için teşekkür ederim



    • Düzenleyen CllEker 13 Kasım 2020 Cuma 07:30
    13 Kasım 2020 Cuma 07:26
  • public int UsageClass(string frequencyValue)

      string[] frequency = { "Her Gün < 30 dakika Her Hafta < 2 saat Her Ay < 1 gün Her Sene < 5 gün" ,
                "Her Gün 30-120 dakika", "Her Hafta 2-8 saat", "Her Ay 1-6 gün", "Her Sene 15 gün-2 ay",
                "Her Gün 2-6 saat", "Her Hafta 1-3 gün", "Her Ay 6-15 gün", "Her Sene 2-5 ay",
                "Her Gün > 6 saat", "Her Hafta > 3 gün", "Her Ay > 15 gün", "Her Sene > 5 ay",
                };
                for (int i = 0; i < frequency.Length; i++)
                {
                    if (frequency[i].Contains(frequencyValue))
                    {
                        return i + 1;
                    } 
                }

    Cevabınız için teşekkür ederim verilerim string olarak uzun oldugu için if koşulu ile yapmayı uygun görmedim ben bu şekilde yaptım . Cevabınız için teşekkür ederim



    Aslinda bu haliyle dogru olmamis, hataya acik. Harezmi'nin onerisi hic olmazsa dogruydu.

    Soyle daha iyi olabilir:

    void Main()
    {
    	Console.WriteLine(UsageClass("Her Hafta 1-3 gün"));
    	Console.WriteLine(UsageClass("Her Gün > 6 saat"));
    	Console.WriteLine(UsageClass("6 saat"));
    
    }
    
    public static int? UsageClass(string frequencyValue)
    {
    	var frequencies = new[] {
    		new {Values = new string[] {"Her Gün < 30 dakika", "Her gHafta < 2 saat", "Her Ay < 1 gün", "Her Sene < 5 gün"}, GroupId = 1},
    		new {Values = new string[] {"Her Gün 30-120 dakika", "Her Hafta 2-8 saat", "Her Ay 1-6 gün", "Her Sene 15 gün-2 ay"}, GroupId = 2},
    		new {Values = new string[] {"Her Gün 2-6 saat", "Her Hafta 1-3 gün", "Her Ay 6-15 gün", "Her Sene 2-5 ay"}, GroupId = 3},
    		new {Values = new string[] {"Her Gün > 6 saat", "Her Hafta > 3 gün", "Her Ay > 15 gün", "Her Sene > 5 ay"}, GroupId = 4},
    	};
    	var group = frequencies.SingleOrDefault(f => f.Values.Any(v => v == frequencyValue));
    	return (group?.GroupId);
    }

    Tabii aslinda sizin stringlerde belli bir kalip var. Bu kaliba uygun daha efektif data yapilari da olusturulabilir. Kullanim yeri ve seklini en iyi siz bildiginize gore degerlendirirsiniz.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    13 Kasım 2020 Cuma 11:29
    Yanıtlayıcı