PDA

View Full Version : سوال: تغییر در چندین اطلاعات توسط LINQ



mohammad5530
جمعه 07 تیر 1392, 13:34 عصر
سلام

من میخام توسط یک دستور در LINQ تمامی اطلاعاتی که دارای یک شرط هستن دچار تغییر بشن

مثلا کالاهایی که گروه آنها نرم افزار هست کدشون تغییر کنه

متاسفانه من تو اینترنت زیاد گشتم

من خودم چندین دستور رو امتحان کردم.مثلا از Single() استفاده کردم ولی فقط یک مقدار رو میشناسه و ارور میده.از SingleOrDefault() استفاده کردم باز هم فقط یک مقدار رو شناسایی میکنه و تغییر میده.

از First() و FirstOrDefault() هم استفاده کردم ولی فقط اولین کالایی که چنین شرایطی رو داره تغییر میکنه

من میخام تمامی کالاهایی که اون شرط رو دارن تغییر بکنن

لطفا منو کمک کنید

مرسی

Mahmoud.Afrad
جمعه 07 تیر 1392, 15:53 عصر
از where براساس شرط استفاده کنید.
روی نتیجه با حلقه میتونید تغییرات مد نظر رو اعمال کنید.

مهدی هادیان2
جمعه 07 تیر 1392, 19:56 عصر
بسم الله الرحمن الرحیم
با سلام
از متد ALL استفاده کنید.
در لینک زیر مثالی آورده شده است:
http://msdn.microsoft.com/en-us/library/bb548541.aspx
موفق باشید.

مهرداد صفا
جمعه 07 تیر 1392, 20:04 عصر
با سلام.
فکر میکنم دنبال متود ElementAt هستید که با استفاده از آن و شماره index آیتم مورد نظر مثل یک آرایه به آیتم دسترسی دارید.

مهرداد صفا
جمعه 07 تیر 1392, 20:25 عصر
البته متود ElementAt در مورد دسترسی و تغییر یک آیتم خاص از IEnumerableکاربرد دارد. برای تغییر دسته ای آیتمها ساده ترین را این است که با استفاده از متود ToList نتیجه جستجو رابه List تبدیل کرده و با استفاده از متود List.ForEach تکتک عناصر را تغییر دهید.
اگر به مثال نیاز بود بفرمایید.

Mahmoud.Afrad
جمعه 07 تیر 1392, 22:07 عصر
از متد ALL استفاده کنید.
متد All صرفا برای اینه که متوجه بشیم همه آیتم های انتخابی شرط مورد نظر رو دارند یا نه. اما برای انتخاب چند آیتم که شرط خاصی دارند باید از where استفاده کنند تا خروجی قابل ادیت باشه.

mohammad5530
جمعه 07 تیر 1392, 22:33 عصر
لطفا از tolist یک مثال بزنید

مرسی

Salar Ashgi
جمعه 07 تیر 1392, 22:52 عصر
بهتره با کد منظورتون رو بیان کنید ، با این حال اگه هدفتون این هست :



List<Product> list = new List<Product>();
var q = from p in list
where p.grp = "..."
select p;

مهرداد صفا
جمعه 07 تیر 1392, 23:47 عصر
لطفا از tolist یک مثال بزنید

مرسی
خواهش میکنم.
پست شماره 21 (http://barnamenevis.org/showthread.php?405214-%DA%86%D8%B7%D9%88%D8%B1-%D9%85%DB%8C%D8%B4%D9%87-%D8%A8%D8%A7-%DA%A9%D9%84%DB%8C%DA%A9-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%DA%A9%D9%85%D9%87-%D8%AA%D9%85%D8%A7%D9%85-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D9%87%D8%A7-%D8%B1%D9%88-%D8%AE%D8%A7%D9%84%DB%8C-%DA%A9%D9%86%D9%85&p=1805201&viewfull=1#post1805201) و 22 (http://barnamenevis.org/showthread.php?405214-%DA%86%D8%B7%D9%88%D8%B1-%D9%85%DB%8C%D8%B4%D9%87-%D8%A8%D8%A7-%DA%A9%D9%84%DB%8C%DA%A9-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%DA%A9%D9%85%D9%87-%D8%AA%D9%85%D8%A7%D9%85-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D9%87%D8%A7-%D8%B1%D9%88-%D8%AE%D8%A7%D9%84%DB%8C-%DA%A9%D9%86%D9%85&p=1805321&viewfull=1#post1805321) این تاپیک (http://barnamenevis.org/showthread.php?405214-%DA%86%D8%B7%D9%88%D8%B1-%D9%85%DB%8C%D8%B4%D9%87-%D8%A8%D8%A7-%DA%A9%D9%84%DB%8C%DA%A9-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%AF%DA%A9%D9%85%D9%87-%D8%AA%D9%85%D8%A7%D9%85-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D9%87%D8%A7-%D8%B1%D9%88-%D8%AE%D8%A7%D9%84%DB%8C-%DA%A9%D9%86%D9%85) را ببینید.

mohammad5530
سه شنبه 11 تیر 1392, 09:03 صبح
کسی هست کمک کنه

من به تاپیک های بالا سر زدم ولی چیزی متوجه نشدم

میخام تمامی اون اطلاعاتی که دارای اون شرط هستن یک فیلدشون تغییر کنه.لطفا کمک کنید

mohammad5530
شنبه 15 تیر 1392, 06:28 صبح
دوستان لطفا کمک کنید.فکر نکنم چیزه دشواری باشه که هیچ کس جواب درست نمیده

13601360
شنبه 15 تیر 1392, 07:49 صبح
این مثال رو ببینید

internal class car
{
private string _make;
private string _model;
private string _id;

public string Make
{
get { return _make; }
set { _make = value; }
}
public string Model
{
get { return _model; }
set { _model = value; }
}
public string ID
{
get { return _id; }
set { _id = value; }
}
}

private void Form1_Load(object sender, EventArgs e)
{
List<car> cars = new List<car>();
cars.Add(new car() { Make = "Ford", Model = "Mustang", ID = "1" });
cars.Add(new car() { Make = "Ford", Model = "F150", ID = "2" });
cars.Add(new car() { Make = "Ford", Model = "Thunderbird", ID = "3" });
cars.Add(new car() { Make = "Honda", Model = "Accord", ID = "4" });
cars.Add(new car() { Make = "Honda", Model = "Civic", ID = "5" });
cars.Add(new car() { Make = "Honda", Model = "Element", ID = "6" });

var query = cars.Where(x => x.Make == "Ford").ToList();
query.ForEach(x => x.Model = "Test");

this.dataGridView1.DataSource = query.ToList();
}

mohammad5530
شنبه 15 تیر 1392, 14:04 عصر
این مثال رو ببینید

internal class car
{
private string _make;
private string _model;
private string _id;

public string Make
{
get { return _make; }
set { _make = value; }
}
public string Model
{
get { return _model; }
set { _model = value; }
}
public string ID
{
get { return _id; }
set { _id = value; }
}
}

private void Form1_Load(object sender, EventArgs e)
{
List<car> cars = new List<car>();
cars.Add(new car() { Make = "Ford", Model = "Mustang", ID = "1" });
cars.Add(new car() { Make = "Ford", Model = "F150", ID = "2" });
cars.Add(new car() { Make = "Ford", Model = "Thunderbird", ID = "3" });
cars.Add(new car() { Make = "Honda", Model = "Accord", ID = "4" });
cars.Add(new car() { Make = "Honda", Model = "Civic", ID = "5" });
cars.Add(new car() { Make = "Honda", Model = "Element", ID = "6" });

var query = cars.Where(x => x.Make == "Ford").ToList();
query.ForEach(x => x.Model = "Test");

this.dataGridView1.DataSource = query.ToList();
}


خدا خیرت بده.دستت درد نکنه.درست شد