سوالی در مورد Linq (C#)
با عرض سلام و خسته نباشید
بر فرض ما یک لیستی داریم که عضویت کاربر های وب سایت رو نشون میده (معمولی،مدیر کل، مدیر بخش برنامه نویسی ،مدیر بخش شبکه)
اگر بنده بخوام مقدار عادی رو در لیستم بریزیم مثلا از کد زیر استفاده میکنم
q = q.Where(i => i.Karbar== "معمولی").ToList();
اگر ما بخواهیم دوتا مقادر رو داخل q که خودش از نوع لیست هست بریزیم باید چیکار کنیم؟؟؟
مثلا میخواهیم مدیر کل و مدیر بخش رو داخل q ذخیره کنیم و بقیه رو رد کنه؟
8 پاسخ
البته مشکل بنده با یک راه دیگه حل میشه ولی بلد نیستم
q = q.Where(i => i.Karbar== "معمولی").ToList(); w = w.Where(i => i.Karbar== "فعال").ToList();
حالا چجوری این دوتا رو میشه به یک لیست تبدیل کرد؟ اگه اینم بدونم میشه مشکلمو حل کنم
فکر کنم کدش شبیه این میشه :
q = q.Where(i => i.Karbar== "معمولی" || i => i.Karbar== "عامل").ToList();
|| رو تو لینک سرچ کنید :
using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) { var query_andor1 = from c in svcContext.ContactSet where ((c.Address1_City == "Redmond" || c.Address1_City == "Bellevue") && (c.CreditLimit.Value != null && c.CreditLimit.Value >= 200)) select c; foreach (var c in query_andor1) { System.Console.WriteLine(c.LastName + ", " + c.FirstName + " " + c.Address1_City + " " + c.CreditLimit.Value); } }
خدا خیرتون بده ! خب این میشه حالت OR دیگه ! .
karbar که همزمان هر دو مقدار "معمولی" و "فعال" رو نداره ! پس همون OR رو استفاده کنید !
من این حالت OR رو توی search ها دیدم ؛ اما ظاهرا حالت AND بسیار ساده تره :
var q= from a in svcContext.AccountSet where a.Name.Contains("Contoso") where a.Address1_City == "Redmond" select a;
اینم لینکش ، اتفاقا OR رو هم داره.
سلام دوست گرامی متاسفانه اصلا این ساختارش صحیح نیست پس این کد درست نیست در ضمن من دنبال ( یا ) نیستیم من میخوام هر دو رو بگیرم یعنی (&&) البته اینها در linq کاربردی ندارن
بازم ممنون از پاسخ گوییتون
از این روش استفاده کردم
q = q.Where(i => i.Karbar== "معمولی").ToList(); w = w.Where(i => i.Karbar== "فعال").ToList(); q = q.Concat(w).ToList();
من از این کد استفاده کردم ولی نمی دونم استاندارد هست یا نه
بی زحمت مثالی از حالت OR بفرستید من تو لینکی که فرستادین نتونستم پیدا کنم
دستتون درد نکنه ولی منظور من اینم نبود متاسفانه این And هست ولی برای دو ستون در حالی که من میخوام از یک ستون دو نوع مختلف داده رو بگیرم اگر به شکل بالا بنویسم کار نمی کنه چون در where اول داده ها از فیلتر رد میشن و در شرط دوم نمی تونیم برسی کنیم