আমি কীভাবে সি # তে ফোরচ লুপ থেকে প্রস্থান করব?


88
foreach (var name in parent.names)
{
    if name.lastname == null)
    {
        Violated = true;
        this.message = "lastname reqd";
    }

    if (!Violated)
    {
        Violated = !(name.firstname == null) ? false : true;
        if (ruleViolated)
            this.message = "firstname reqd";
    }
}

যখনই লঙ্ঘন করা হয় সত্য, আমি foreachতত্ক্ষণাত লুপ থেকে বেরিয়ে আসতে চাই । আমি এটা কিভাবে করব?

উত্তর:


212

ব্যবহার break


আপনার প্রশ্নের সাথে সম্পর্কিত নয়, আমি আপনার কোডটিতে লাইনটি দেখছি:

Violated = !(name.firstname == null) ? false : true;

এই লাইনে, আপনি একটি বুলিয়ান মান নেন (name.firstname == null)। তারপরে, আপনি এতে !অপারেটর প্রয়োগ করেন । তারপরে, মানটি সত্য হলে, আপনি লঙ্ঘনকে মিথ্যাতে সেট করেছেন; অন্যথায় সত্য। সুতরাং মূলত, ভায়োলেটেডটিকে মূল এক্সপ্রেশন হিসাবে একই মানে সেট করা হয় (name.firstname == null)। কেন এটি ব্যবহার করবেন না:

Violated = (name.firstname == null);

পরীক্ষা এবং অবহেলা হলে আমি অযথা দেখতে পছন্দ করি না।
জন গ্রাবাউসকাস



10

এই কোডটি দেখুন, এটি আপনাকে দ্রুত লুপ থেকে বেরিয়ে আসতে সহায়তা করতে পারে!

foreach (var name in parent.names)
{
   if (name.lastname == null)
   {
      Violated = true;
      this.message = "lastname reqd";
      break;
   }
   else if (name.firstname == null)
   {
      Violated = true;
      this.message = "firstname reqd";
      break;
   }
}

0

পরীক্ষার সময় আমি দেখতে পেলাম যে ব্রেকের পরে ফোরচ লুপটি লুপের বাইরে চলে যায় এবং লুপের বাইরে যায় না। সুতরাং আমি জন্য foreach পরিবর্তন এবং এই ক্ষেত্রে সঠিকভাবে বিরতি কাজ - বিরতি প্রোগ্রাম প্রবাহ লুপ বাইরে চলে যাওয়ার পরে।


এমএস ডকস বলছেন breakএবং আমার কোডে এটি ডকস.মাইক্রোসফট.এইন / ইউএস / ডটনেট / সিএসআরপি / ভাষা-রেফারেন্স/…ও করে continue ঠিক পরের পুনরাবৃত্তিতে যায়।
মিরো জে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.