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

نام تاپیک: لیست 2 بعدی

  1. #1
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    لیست 2 بعدی

    با سلام
    می دونم برای تعریف لیست از کد زیر استفاده می کنند ولی آیا می توان لیست 2 بعدی هم تعریف کرد ؟
    List<int> list = new List<int>();
    list.Add(2);
    list.Add(3);
    list.Add(5);
    list.Add(7);

  2. #2
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: لیست 2 بعدی

    برای حالت تو در تو میتونی از
     
    List<List<int>> nest = newList<List<int>>();

    استفاده کنی اما اگر منظورت چیزی مثل Key, Value است از Dictionary استفاده کن
     
    Dictionary<int, string> dic = newDictionary<int, string>();


  3. #3
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: لیست 2 بعدی

    دووست عزیز در حقیقت من می خواهم یک آرایه دو بعدی در سیستم تعریف کنم که :
    اولا در سراسر سیستم قابل استفاده باشد
    ثانیا در ابتدا ابعادش معلوم نیست و در حین اجرا مشخص می شود
    در اصل برنامه من به این صورت کار می کند که یک سری جمله از ورودی گرفته و کلمات را در هر جمله می شمارد و یک ماتریس ( آرایه دوبعدی ) خروجی م یدهد که سطرها معرف جملات و ستون ها معرف کلمات هستند

  4. #4

    نقل قول: لیست 2 بعدی

    سلام
    دوست من شما باید ابتدا با استفاده از متد strring.Split('.') که نقطه رو معیار اتمام جمله قرار می ده متن ورودی رو به چندین جمله تفکیک کنی. که این کار یه آرایه از جملات رو بهت میده بعد هر خونه از آرایه چون خودش رشته هست می تونه دوباره split(' ') بشه تا بتونی جمله رو به چندین کلمه خرد کنی. نیازی به دونستن از قبل طول آرایه نیست.

  5. #5
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: لیست 2 بعدی

    نقل قول نوشته شده توسط f_g1348 مشاهده تاپیک
    دووست عزیز در حقیقت من می خواهم یک آرایه دو بعدی در سیستم تعریف کنم که :
    اولا در سراسر سیستم قابل استفاده باشد
    ثانیا در ابتدا ابعادش معلوم نیست و در حین اجرا مشخص می شود
    در اصل برنامه من به این صورت کار می کند که یک سری جمله از ورودی گرفته و کلمات را در هر جمله می شمارد و یک ماتریس ( آرایه دوبعدی ) خروجی م یدهد که سطرها معرف جملات و ستون ها معرف کلمات هستند
    موردی که fjm11100 در 2# اشاره کردن، کاملاً این نیاز شما رو پوشش میده؛ شما کافیه یک Dictionary بصورت public static در کلاس اصلی پروژه تعریف کنید که اولین عضوش "معرف جملات" و دومین عضوش هم یک لیست "معرف کلمات" باشه، برای نمونه:
            public static Dictionary<string, List<string>> global_terms =
    new Dictionary<string, List<string>>();

    private void test()
    {
    List<string> terms = new List<string>
    {
    "الا يا ايها الساقی ادر کاسا و ناولها",
    "که عشق آسان نمود اول ولی افتاد مشکل‌ها",
    "به بوی نافه‌ای کاخر صبا زان طره بگشايد",
    "ز تاب جعد مشکينش چه خون افتاد در دل‌ها",
    "مرا در منزل جانان چه امن عيش چون هر دم",
    "جرس فرياد می‌دارد که بربنديد محمل‌ها",
    "به می سجاده رنگين کن گرت پير مغان گويد",
    "که سالک بی‌خبر نبود ز راه و رسم منزل‌ها",
    "شب تاريک و بيم موج و گردابی چنين هايل",
    "کجا دانند حال ما سبکباران ساحل‌ها",
    "همه کارم ز خود کامی به بدنامی کشيد آخر",
    "نهان کی ماند آن رازی کز او سازند محفل‌ها",
    "حضوری گر همی‌خواهی از او غايب مشو حافظ",
    "متی ما تلق من تهوی دع الدنيا و اهملها"
    };
    foreach (string item in terms)
    global_terms.Add(item, item.Split(' ').ToList());

    Console.WriteLine(global_terms);
    }

    مشخصاً شما بجای اون لیست terms، می‌تونید از ورودی، جملات خودتون رو بگیرید...

  6. #6
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: لیست 2 بعدی

    من اصلاً متوجه نشدم دقيقاً چي شد !!!
    اينو مي دونم كه يك آرايه دارم ( از ورودي گرفتم ) كه يكسري كلمات داخلش هست و يك متن كه اون هم از ورودي گرفتم حالا مي خواهم تعداد تكرار هر كلمه را درون هر جمله ببينم چنتاست ؟
    يعني تو C#‎ آرايه دو بعدي وجود نداره كه بشه بصورت سراسري تعريف كرد و طولش را بعداً مشخص كرد ؟

  7. #7
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: لیست 2 بعدی

    نقل قول نوشته شده توسط f_g1348 مشاهده تاپیک
    ...يعني تو C#‎ آرايه دو بعدي وجود نداره كه بشه بصورت سراسري تعريف كرد و طولش را بعداً مشخص كرد ؟
    نه، اگه منظورتون چیزی مثل memset یا malloc برای مثلاً [] *char که تو ++C/C داشتیم باشه، نه اینجا نداریم؛ تو #C همه چیز مدیریت شده است و اگه برنامه‌نویس native هستید و تازه اومدین تو دات نت باید به راه‌های دیگه‌ای عادت کنید که من تو کد و توضیحات پست قبلی توضیح دادم.
    به عنوان نمونه، تو دات نت بجای اون‌ها از لیست‌های جنریک استفاده میشه ...
    اگه مشتاق تفاوت‌های تعریف و معماری متغیرها و ... تو دات‌نت باشید، قبلاً در موردشون اینجا صحبت کردیم.

  8. #8
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: لیست 2 بعدی

    خوب دوست عزيز اگر ميشه كد قبلتون رو يكم واضحتر توضيح بدهيد ( من تازه شروع به كار با C#‎ كردم )
    مثلاً term در اينجا متن ورودي ما است كه شامل چندين جمله مي باشد كه با نقطه از هم جدا شدند ؟
    پس كلمات كجا هستند كه بايد آنها را در متن پيدا كرده و شمارش كنيم ؟

  9. #9
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: لیست 2 بعدی

    "term در اينجا متن ورودي ما" نیست؛ terms (=جملات) همونطورکه از نامش پیداست، یک آرایه از جملات هست که با فرض اینکه شما می‌دونید List چی هست -پست اول خودتون- نوشتم، اگه یه متن طولانی دارید که جملات‌اش با نقطه از هم جدا شده، همونطورکه tooraj_azizi_1035 اشاره کردن، با split کردنش می‌تونید به همین terms برسید؛ تو این مثال فرض شده اینکار قبلاً با یک خط کد انجام شده.
    بقیه رو هم که اشاره کردم، تمام جملات و کلمات split شده درون همون "Dictionary که بصورت public static در کلاس اصلی پروژه تعریف" شده، قرار می‌گیرن، عضو اول میشه جمله شما و عضو دوم کلمات تفکیک شده اون جمله با delimiter فاصله (space)؛ دیگه نمی‌دونم چطور توضیح بدم، اگه بخواین اون جمله رو هم با نقطه split کنید میشه اینطوری (واسه هر خط هم کامنت گذاشتم):
    string entry = "your entry. balh blah blah.  blah1 blah1 blah1  . blah2 blah2. blah blah blah.....";

    //Split entry tor term(s) with '.' delimiter
    foreach (string term in entry.Split('.'))
    // Check term doesn't empty
    if (term.Trim().Length > 0)
    // check term not exist before!
    if (!global_terms.ContainsKey(term.Trim()))
    //Split term to word(s) and fill
    //Global dictionary's second member with word(s)
    global_terms.Add(term.Trim(), term.Trim().Split(' ').ToList());

  10. #10
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: لیست 2 بعدی

    نقل قول نوشته شده توسط Saeed_m_Farid مشاهده تاپیک
    "term در اينجا متن ورودي ما" نیست؛ terms (=جملات) همونطورکه از نامش پیداست، یک آرایه از جملات هست که با فرض اینکه شما می‌دونید List چی هست -پست اول خودتون- نوشتم، اگه یه متن طولانی دارید که جملات‌اش با نقطه از هم جدا شده، همونطورکه tooraj_azizi_1035 اشاره کردن، با split کردنش می‌تونید به همین terms برسید؛ تو این مثال فرض شده اینکار قبلاً با یک خط کد انجام شده.
    بقیه رو هم که اشاره کردم، تمام جملات و کلمات split شده درون همون "Dictionary که بصورت public static در کلاس اصلی پروژه تعریف" شده، قرار می‌گیرن، عضو اول میشه جمله شما و عضو دوم کلمات تفکیک شده اون جمله با delimiter فاصله (space)؛ دیگه نمی‌دونم چطور توضیح بدم، اگه بخواین اون جمله رو هم با نقطه split کنید میشه اینطوری (واسه هر خط هم کامنت گذاشتم):
    string entry = "your entry. balh blah blah.  blah1 blah1 blah1  . blah2 blah2. blah blah blah.....";

    //Split entry tor term(s) with '.' delimiter
    foreach (string term in entry.Split('.'))
    // Check term doesn't empty
    if (term.Trim().Length > 0)
    // check term not exist before!
    if (!global_terms.ContainsKey(term.Trim()))
    //Split term to word(s) and fill
    //Global dictionary's second member with word(s)
    global_terms.Add(term.Trim(), term.Trim().Split(' ').ToList());
    دوست عزیز قبل از هر چیز لازمه که ازت تشکر کنم بخاطر محبتی که داری و راهنمایی می کنی ولی این کدی که شما دارین به این صورت کار می کنه که تا نقطه تمام کلمات را می شمارد ( مثلاً اگر جمله " من من تو " باشد خروجی 3 دارد ) ولی من دقیقا می خواهم به من بگه 2 بار کلمه من و 1 بار کلمه تو آمده
    در مثال زیر واضح تر می گم :
    " من من تو . من تو . "
    در جمله اول کلمه من 2 بار و کلمه تو 1 بار
    در جمله دوم کلمه من 1 بار و کلمه تو 1 بار وجود دارد
    ممنون میشم اگر بازهم من را راهنمایی بفرمایید

  11. #11
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: لیست 2 بعدی

    این کد چیزی رو نمی‌شماره! صورت سوال شما یه چیز دیگه بود:
    ...در حقیقت من می خواهم یک آرایه دو بعدی در سیستم تعریف کنم که :
    اولا در سراسر سیستم قابل استفاده باشد
    ثانیا در ابتدا ابعادش معلوم نیست و در حین اجرا مشخص می شود ...
    شمردن کلمات تکراری، کار اول ابتدایی هست؛ من لیست کلمات رو تهیه کردم، برای چیزی که می‌خواین، اگه linq نمی‌خواین بنوبسین، یه for بذارین، برای هر لیست count بگیره ...
    چون احساس می‌کنم مشکل اصلی شما رفع شده، ادامه نمیدم!
    موفق باشید./

  12. #12
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: لیست 2 بعدی

    دوست عزيز از نحو خطاب كردنتون ممنون ( کار اول ابتدایی هست )
    من در پست هاي ديگر هم اين سوال را به نحوي مطرح كردم و گفتم كه من اين برنامه را بصورت تمام و كمال در vb.net نوشتم و حالا مي خواهم در C#‎ پياده سازي كنم و نيز C#‎ هم ياد بگيرم
    در توضيحات نيز اين را بگويم كه من كلمات يكتا را در جمله پيدا مي كنم و نيز با ريختن كل متن درون يك آرايه بصورت كلمه به كلمه ، درون آن را براي كلمات جستجو كرده و تعداد تكرار كلمات را پيدا مي كنم ( به اين دليل از اين روش استفاده مي كنم چون برنامه يك ورودي داره كه اين قابليت را به كاربر مي ده تا با دادن عددي ، تعداد جملات را با هم ادغام كند )
    ولي مشكل من اينجا بود كه وقتي كلمات را مي شمارم مي خواهم بگويم در فلان جمله ، فلان كلمه اين تعداد تكرار شده تا در جاهاي ديگر برنامه ( محاسبات كسينوسي ) از اين اعداد استفاده كنم و چيزي كه به ذهن من رسيد استفاده از آرايه دو بعدي بود ( كه در vb.net به راحتي پياده شد ) كه در ابتدا ابعادش معلوم نيست و با خواندن متن از ورودي اين ابعاد مشخص ميشه
    من هنوز سوالم پا برجاست كه چطور اين كار ( با اين توصيف ) را انجام دهم ( تعريف آرايه دو بعدي )

تاپیک های مشابه

  1. URL برای دانلود Agent ها و لیست فرامین هر کدام
    نوشته شده توسط Gladiator در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: چهارشنبه 09 اسفند 1396, 15:12 عصر
  2. سوال: کل محتویات یه آرایه ی رشته ای تک بعدی در لیست باکس بدون for
    نوشته شده توسط فاطمه_14 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 19 خرداد 1391, 11:13 صبح
  3. سوال: مشکل با لیست های چند بعدی در پایتون
    نوشته شده توسط code_baz در بخش دیگر زبان های اسکریپتی
    پاسخ: 3
    آخرین پست: دوشنبه 26 اردیبهشت 1390, 13:10 عصر
  4. آرایه ها یا لیست های چند بعدی
    نوشته شده توسط mhofayyaz در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 20 اردیبهشت 1390, 00:08 صبح
  5. لینک لیست دو بعدی
    نوشته شده توسط lvlina_r در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: چهارشنبه 02 اردیبهشت 1388, 00:24 صبح

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

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