View Full Version : سوال: مشخص کردن ایندکس یک داده در لیست با استفاده از linq
man_iran
شنبه 16 بهمن 1389, 21:59 عصر
من می خوام با استفاده از linq در لیست خود بگردم و اگر مقدار ورودی برابر داده موجود در لیست باشه اعلام کنه داده در کجای لیست قرار داره
برای این کار به چه کدی نیاز دارم؟
#aliyari_C
یک شنبه 17 بهمن 1389, 00:07 صبح
سلام
خدا قوت
List<string> items = new List<string>();
items.Add("Item 1");
items.Add("Item 2");
items.Add("Item 3");
items.Add("Item 4");
items.Add("Item 2");
items.Add("Item 3");
var result = items.Select((item, index) => new { index, item }).Where(f => f.item == "Item 2");
//select new { Name=i, Ind=index };
foreach (var test in result)
{
Console.WriteLine(string.Format("item[{0}] index[{1}]", test.item, test.index));
}
Console.ReadLine();
موفق و تندرست باشی
موفق و تندرست باشی
__________________________________________________ _____________________
چه کسی پنیر مرا برداشت_________را بخوانید (http://www.namaye.org/ebook/6.pdf)
پنیر را بو کنید تا از زمان کهنه شدن آن آگاه شوید.
man_iran
یک شنبه 17 بهمن 1389, 00:27 صبح
من این کد را برای ویرایش عنصری در لیست می خوام. اصلا می شه مستقیما از linq برای ویرایش استفاده کرد؟ اگر نه، چطوری می شه خروجی ایندکس گرفت؟
الان کدی که دادید خروجی آن int است؟
man_iran
یک شنبه 17 بهمن 1389, 13:00 عصر
اگر امکان داره راهنمایی کنید.
من باید یک نوع int را بعنوان ورودی تابع remove لیست بدم. به همین دلیل نمی تونم از دستوراتی که گفتید استفاده کنم.
Salar Ashgi
دوشنبه 18 بهمن 1389, 23:13 عصر
خوب حالا چه اصراری به LINQ دارید ؟!
اگه اینطور که مطرح کردید باشه ، از کالکشن ها میتونید استفاده کنید .
با این حال مثالهایی براتون میزنم (با کالکشن ها و LINQ) :
int[] a = { 1, 6, 5, 3, 4, 2 };
int index = Array.IndexOf(a, 5);//2
//----------------------------------
List<int> list = new List<int>() { 9, 12, 18, 22, 45, 34 };
int index2 = list.IndexOf(45);//4
//----------------------------------
var query = (from n in list
where n % 5 == 0
select list.IndexOf(n));
foreach (var q in query)
{
MessageBox.Show(q.ToString());//4
}
موفق باشید ./
#aliyari_C
سه شنبه 19 بهمن 1389, 00:01 صبح
دوباره سلام
خوب همون اولش همینو می گفتی
items.RemoveAll(f => f == "Item 2");
موفق باشی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.