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


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.