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

نام تاپیک: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

  1. #1

    مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    سلام . خسته نباشید . میخوام آیتمهای دو تا لیست باکس رو با هم مقایسه کنم و در صورتی که ایتمهای لیست باکس اولی و دومی در مواردی متفاوت بودن یا آیتمی کم و زیاد بود ، اون آیتمها رو در بیاره . ترتیب مهم نیست و قرار نیست تریبشون مثل هم باشه . محتویات لیست اول باید در لیست دوم باشه نبود ، با یه مسیج باکس نمایش بده . چیکار باید بکنم ؟

  2. #2

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    یک راه این است که کار را به SQL Server بسپارید یعنی item های دو لیست را در دو جدول درج کنید سپس با استفاده از عملگر های جبری/مجموعه ای یا با استفاده از عملگر merge در SQL Server 2008 این کار را انجام دهید.
    (برای اطلاعات بیشتر یک تاپیک در تالار SQL ایجاد کنید)
    وبلاگ من (Advanced SQL Querying)

  3. #3

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    آخه برنامه به دیتابیس تقریبا مربوط نیست و همه چی سرپایی میخوام باشه .

  4. #4

  5. #5

    Smile نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    سلام ، اگه تعداد آیتم های دو لیست باکس با هم برابر باشند :


    int n = listBox1.Items.Count;//listbox2.items.count is also = n
    string str="";
    for (int i = 0; i < n; i++)
    {
    if (listBox1.Items[i].ToString() == listBox2.Items[i].ToString())
    continue;
    else
    str += listBox1.Items[i].ToString() + " , " + listBox2.Items[i].ToString() + "\n";
    }
    MessageBox.Show(str);




    *) اگر تعداد آیتم ها برابر هم نباشند ، باز میشه با حلقه اینکارو انجام داد ولی با یکسری تغییرات !

    موفق و پیروز باشید !!!






  6. #6

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    ممنون از همه . سالار اینو انجام میدم فکر کنم خودشه . میتونم برای برابر شدنشون خودم مقادیری به صورت خودکار اضافه کنم که بشه از این کد استفاده کرد. اگر پیشنهاد دیگه ای هم بود استقبال میکنم .

  7. #7

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    نقل قول نوشته شده توسط salar_cpp_cs مشاهده تاپیک
    سلام ، اگه تعداد آیتم های دو لیست باکس با هم برابر باشند :


    int n = listBox1.Items.Count;//listbox2.items.count is also = n
    string str="";
    for (int i = 0; i < n; i++)
    {
    if (listBox1.Items[i].ToString() == listBox2.Items[i].ToString())
    continue;
    else
    str += listBox1.Items[i].ToString() + " , " + listBox2.Items[i].ToString() + "\n";
    }
    MessageBox.Show(str);


    *) اگر تعداد آیتم ها برابر هم نباشند ، باز میشه با حلقه اینکارو انجام داد ولی با یکسری تغییرات !

    موفق و پیروز باشید !!!
    کد ترتیبی عمل میکنه سالار. یعنی اعضای متناظر رو مقایسه میکنه . من میخوام عضو آ از لیست اول رو با هر عضو از لیست دوم مقایسه کنه .

  8. #8

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    نقل قول نوشته شده توسط dr_ghezavat مشاهده تاپیک
    کد ترتیبی عمل میکنه سالار. یعنی اعضای متناظر رو مقایسه میکنه . من میخوام عضو آ از لیست اول رو با هر عضو از لیست دوم مقایسه کنه .
    خب دوست من میتونی تو کد بالا با یه سری تغییرات مثل اضافه کردن حلقه for each برای بررسی لیست دوم این کارو انجام بدی. (منظورم اینه که دو تا حلقه داشته باشی)
    موفق باشی و پیروز.

  9. #9

    Smile نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    نقل قول نوشته شده توسط dr_ghezavat مشاهده تاپیک
    کد ترتیبی عمل میکنه سالار. یعنی اعضای متناظر رو مقایسه میکنه . من میخوام عضو آ از لیست اول رو با هر عضو از لیست دوم مقایسه کنه .
    با یک تغییر جزیی میشه اینکارو انجام داد :


    string str = "";
    int n = listBox1.Items.Count;
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
    if (listBox1.Items[i].ToString() == listBox2.Items[j].ToString())
    continue;
    else
    str += listBox1.Items[i].ToString() + " , " + listBox2.Items[j].ToString() + "\n";
    }
    }
    MessageBox.Show(str);




    موفق و پیروز باشید !!!






  10. #10

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    بازم نشد . ببینید این کد منه . میخوام کد مورد نظر یه چیزی شبیه این باشه ولی خطی که قرمز نوشته شده رو نمیدونم به جاش چی بنویسم که خطا نده اینو نوشتم که منظورمو برسونم :
            private void button2_Click(object sender, EventArgs e)
    {
    int subscribersCount=listBox1.Items.Count;
    int subscribtionCount = listBox2.Items.Count;
    string blackList;
    for (int subscriberIndex = 0;
    subscriberIndex < subscribersCount;
    subscriberIndex++)
    {
    string[] subscriberName =listBox1.Items[subscriberIndex].ToString();
    foreach (string moshtarakName in subscriberName)
    {
    for (int subscribtionIndex = 0;
    subscribtionIndex < subscribtionCount;
    subscribtionIndex++)
    {
    if (moshtarakName == listBox2.Items[subscribtionIndex].ToString())
    continue;
    else
    blackList += moshtarakName;
    }
    }
    }
    MessageBox.Show(blackList + "کسانی هستند که در حال حاضر شما مشترکشان نیستید");


    }





    من کد شمارو به این صورت تغییر دادم ولی نتیجه شد تصویر :
    int subscribersCount = listBox1.Items.Count; 

    string str = "";
    for (int i = 0; i < subscribersCount; i++)
    {
    for (int j = 0; j < subscribersCount; j++)
    {
    if (listBox1.Items[i].ToString() == listBox2.Items[j].ToString())
    continue;
    else
    str += listBox1.Items[i].ToString()+ "\n";
    }
    }
    MessageBox.Show(str);





  11. #11

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    در واقع میخوام نتیجه این باشه:


  12. #12

    Smile نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    دوست عزیز ، کاش از اول همین عکس رو میذاشتی ، تا موضوع روشنتر بشه ، با این حال من

    واسه این مورد هم کدشو برات نوشتم :

    کد مورد نظر :


    string str="";
    bool res=true;
    foreach (object obj in listBox1.Items)
    {
    foreach (object obj2 in listBox2.Items)
    {
    if (obj.ToString() == obj2.ToString())
    {
    res =
    false;
    break;
    }
    }
    if (res)
    {
    str += obj.ToString() +
    "\n";
    }
    }
    MessageBox.Show(str);


    موفق و پیروز باشید !!!






  13. #13

    Unhappy نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    مثه اینکه این مشکل حل بشو نیست . آقا من وقتی آیتمهای جدیدی به لیستباکس اضافه میکنم و دوباره تست میکنم اطلاعاتی که نشون میده بروز نیست . یعنی باز همون میلاد و حسن رو نشون میده .

  14. #14

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    من خودم هم دارم تلاش میکنم ولی هنوز مشغولم حلقه هارو گز میکنم و به نتیجه ای نرسیدم .
    آخرین ویرایش به وسیله dr_ghezavat : یک شنبه 22 شهریور 1388 در 02:54 صبح

  15. #15

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    یافتم یافتم !!!!!


                for (int   i= 0;   i< listBox1.Items.Count;  i++)
    {
    for (int j = 0; j < listBox2.Items.Count; j++)
    {
    if (listBox1.Items[i].ToString() ==listBox2.Items[j].ToString() )
    {
    break;
    }
    else
    if ((j == listBox2.Items.Count - 1)&&(listBox1.Items[i].ToString() != listBox2.Items[j].ToString()))
    {
    if (listBox1.Items[i].ToString() != listBox1.Items[j].ToString())
    blackList += listBox1.Items[i].ToString() + "\n";
    }
    }
    }






  16. #16

    نقل قول: مقایسه آیتمهای دو لیست باکس و برگرداندن آیتمهای غیر همسان

    یک non generic collection میخواستم
    که هم int و هم string رو ذخیره کنه.

    ساختارش چه شکلی هست؟

    Non-Generic
    ArrayList
    Hashtable
    SortedList
    Queue
    Stack
    IEnumerable
    IList
    CollectionBase
    ReadOnlyCollectionBase

    لینک هایی هم پیدا کردم اما متوجه نشدم.
    http://blogs.msdn.com/b/kcwalina/arc...llections.aspx
    https://msdn.microsoft.com/en-us/library/ms379564.aspx
    http://www.csharp-station.com/Tutorial/CSharp/Lesson20
    https://www.simple-talk.com/blogs/20...c-collections/

    این موارد زیر رو سرچ کردم متاسفانه مثالی پیدا نکردم.
    non generic collection in C#‎‎‎
    stack non generic collection in C#‎‎‎ with example
    Queue non generic collection in C#‎‎‎ with example
    Hashtable non generic collection in C#‎‎‎ with example


    یک مثال میخوام که شبیه این:
    Stack myStack = new Stack();
    myStack.Push("Hello");
    myStack.Push("World");
    myStack.Push("!");
    اما 2 یا چند نوع داده را ذخیره کنه نه فقط مثلا int


    ساختار یک non generic collection چه شکلی هست؟

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

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