نمایش نتایج 1 تا 3 از 3

نام تاپیک: جستجو در لیست

  1. #1

    جستجو در لیست

    من توی لیست با Linq یک کوئری نوشتم تا کوچکترین ها توی لیست بیرون بیاد
    میخوام همه این کوچکترین ها رو حذف کنم
    ولی با کد زیر


    private void dralineforremovspase(List<mpoints> mi)
    {
    for (int i = 0; i < mi.Count; i++)
    {
    var y = (from c in mi
    where c.dis == mi.Min(a => a.dis)
    select c );
    foreach (mpoints mm in y)
    {

    var d = (from c in mi
    where c.f1== mm.f1 || c.f1 == mm.f2
    select c);
    foreach (mpoints mdm in d)
    {
    mi.Remove(mdm);
    }
    }


    }
    }



    این خطا رو میگیرم:
    Collection was modified; enumeration operation may not execute.

  2. #2
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: جستجو در لیست

    نقل قول نوشته شده توسط saed2006 مشاهده تاپیک
    من توی لیست با Linq یک کوئری نوشتم تا کوچکترین ها توی لیست بیرون بیاد
    میخوام همه این کوچکترین ها رو حذف کنم
    ولی با کد زیر


    private void dralineforremovspase(List<mpoints> mi)
    {
    for (int i = 0; i < mi.Count; i++)
    {
    var y = (from c in mi
    where c.dis == mi.Min(a => a.dis)
    select c );
    foreach (mpoints mm in y)
    {

    var d = (from c in mi
    where c.f1== mm.f1 || c.f1 == mm.f2
    select c);
    foreach (mpoints mdm in d)
    {
    mi.Remove(mdm);
    }
    }


    }
    }



    این خطا رو میگیرم:
    Collection was modified; enumeration operation may not execute.
    ۱.خطا دارد بهتان میگه که مشکل چیه، زمان پیمایش یک لیست را تغییر نمیدند.
    ۲.این کد ۳ تا حلقه تو در تو استفاده کرده، اول قبل از اینکه به مشکل ۱ فکر کنید کد را تمیز کنید. و یا اینکه
    ۳.در مورد اینکه هدف چیه توزیح بدید که راه درست را پیشنهاد بدیم، کدی که فرستادید زیادی پیچیده‌است و کدی که زیاد پیچیده است را اول تمیز و ساده میکنند و دوم دیباگ.

  3. #3
    VIP آواتار gwbasic
    تاریخ عضویت
    دی 1348
    محل زندگی
    تهران
    سن
    38
    پست
    983

    نقل قول: جستجو در لیست

    foreach پیمایش را به صورت ReadOnly انجام می دهد پس در داخل آن نمی توان تغییری ایجاد کرد.
    در ضمن این کد شما بیشتر شبیه یک معما می باشد تا اینکه یک کاری انجام دهد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •