คำถามติดแท็ก linq

Language Integrated Query (LINQ) เป็นส่วนประกอบ Microsoft .NET Framework ที่เพิ่มความสามารถในการสอบถามข้อมูลดั้งเดิมในภาษา. NET โปรดพิจารณาใช้แท็กที่มีรายละเอียดเพิ่มเติมตามความเหมาะสมเช่น [linq-to-sql], [linq-to-entity] / [entity-framework] หรือ [plinq]


16
สร้างแบทช์ใน linq
มีใครแนะนำวิธีสร้างแบทช์ที่มีขนาดบางขนาดใน linq ได้ไหม ตามหลักการแล้วฉันต้องการที่จะสามารถดำเนินการเป็นกลุ่มของจำนวนที่กำหนดได้
113 c#  linq 

4
Linq สั่งโดยบูลีน
ฉันมีคิวรี linq ที่ฉันต้องการสั่งโดย f.bar ซึ่งเป็นสตริง แต่ฉันก็ต้องการสั่งโดย f.foo ซึ่งเป็นฟิลด์บูลีนก่อน ชอบแบบสอบถามด้านล่าง (from f in foo orderby f.foo, f.bar select f) แม้ว่าคอมไพล์นี้จะไม่ทำงานตามที่คาดไว้ มันสั่งโดย f.bar โดยไม่สนใจฟิลด์บูลีน ฉันเป็นคนโง่ฉันรู้ แต่ฉันต้องทำอย่างไรเพื่อให้ได้พฤติกรรมนี้? ขอบคุณ
111 c#  linq 

3
ทำไม ToLookup และ GroupBy จึงแตกต่างกัน?
.ToLookup<TSource, TKey>ส่งคืนILookup<TKey, TSource>ไฟล์. นอกจากนี้ยังดำเนินการติดต่อILookup<TKey, TSource>IEnumerable<IGrouping<TKey, TSource>> .GroupBy<TSource, TKey>ส่งคืนIEnumerable<IGrouping<Tkey, TSource>>ไฟล์. iLookup มีคุณสมบัติตัวทำดัชนีที่ใช้งานง่ายดังนั้นจึงสามารถใช้ในลักษณะเหมือนพจนานุกรม (หรือเหมือนการค้นหา) ในขณะที่ GroupBy ทำไม่ได้ GroupBy โดยไม่มีตัวสร้างดัชนีเป็นความเจ็บปวดในการทำงานด้วย วิธีเดียวที่คุณสามารถอ้างอิงวัตถุส่งคืนได้คือการวนลูปผ่าน (หรือใช้วิธีการขยาย LINQ อื่น) กล่าวอีกนัยหนึ่งในกรณีใด ๆ ที่ GroupBy ทำงาน ToLookup ก็จะทำงานได้เช่นกัน ทั้งหมดนี้ทำให้ฉันมีคำถามว่าทำไมฉันถึงต้องรำคาญกับ GroupBy? ทำไมจึงควรมีอยู่?
111 c#  linq 

5
ลำดับมีองค์ประกอบมากกว่าหนึ่งรายการ
ฉันมีปัญหาในการดึงรายการประเภท "RhsTruck" ผ่าน Linq และนำไปแสดง RhsTruck มีคุณสมบัติ Make, Model, Serial และอื่น ๆ ... RhsCustomer มีคุณสมบัติ CustomerName, CustomerAddress, ฯลฯ ... ฉันได้รับข้อผิดพลาด "ลำดับมีองค์ประกอบมากกว่าหนึ่งรายการ" ความคิดใด ๆ ? ฉันเข้าใกล้ผิดทางหรือเปล่า? public RhsCustomer GetCustomer(string customerNumber) { using (RhsEbsDataContext context = new RhsEbsDataContext() ) { RhsCustomer rc = (from x in context.custmasts where x.kcustnum == customerNumber select …
111 c#  .net  asp.net  linq 

5
ฉันจะจัดเรียงรายการทั่วไป DESC และ ASC ได้อย่างไร
ฉันจะจัดเรียงรายการทั่วไป DESC และ ASC ได้อย่างไร ด้วย LINQ และไม่มี LINQ? ฉันใช้ VS2008 class Program { static void Main(string[] args) { List<int> li = new List<int>(); li.Add(456); li.Add(123); li.Add(12345667); li.Add(0); li.Add(1); li.Sort(); foreach (int item in li) { Console.WriteLine(item.ToString() + "\n"); } Console.ReadKey(); } }
110 c#  .net  linq 

4
รับชื่อคอลัมน์ทั้งหมดของ DataTable ลงในสตริงอาร์เรย์โดยใช้ (LINQ / Predicate)
ฉันรู้ว่าเราสามารถทำได้อย่างง่ายดายโดยการวนซ้ำแบบธรรมดา แต่ฉันต้องการติดตาม LINQ / Predicate นี้หรือไม่ string[] columnNames = dt.Columns.? or string[] columnNames = from DataColumn dc in dt.Columns select dc.name;
109 c#  .net  linq  datatable 

5
AsQueryable () มีจุดประสงค์อะไร?
มีจุดประสงค์AsQueryable()เพื่อให้คุณสามารถส่งIEnumerableต่อไปยังวิธีการที่อาจคาดหวังIQueryableหรือมีเหตุผลที่เป็นประโยชน์ในการแสดงIEnumerableเป็นIQueryable? ตัวอย่างเช่นควรจะเป็นสำหรับกรณีเช่นนี้หรือไม่: IEnumerable<Order> orders = orderRepo.GetAll(); // I don't want to create another method that works on IEnumerable, // so I convert it here. CountOrders(orders.AsQueryable()); public static int CountOrders(IQueryable<Order> ordersQuery) { return ordersQuery.Count(); } หรือทำให้มันแตกต่างไปจากเดิม: IEnumerable<Order> orders = orderRepo.GetAll(); IQueryable<Order> ordersQuery = orders.AsQueryable(); IEnumerable<Order> filteredOrders = orders.Where(o => o.CustomerId == …

4
Linq เป็น EntityFramework DateTime
Наэтотвопросестьответына Stack Overflow нарусском : LINQ to Entities ไม่รู้จักเมธอด 'System.DateTime AddDays (Double)' ในแอปพลิเคชันของฉันฉันกำลังใช้ Entity Framework โต๊ะของฉัน -Article -period -startDate ฉันต้องการบันทึกที่ตรงกับ => DateTime.Now > startDate and (startDate + period) > DateTime.Now ฉันลองใช้รหัสนี้ แต่ใช้งานได้แล้ว Context.Article .Where(p => p.StartDate < DateTime.Now) .Where(p => p.StartDate.AddDays(p.Period) > DateTime.Now) เมื่อฉันเรียกใช้รหัสของฉันข้อยกเว้นต่อไปนี้เกิดขึ้น LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.DateTime AddDays (Double)' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้

6
C #: จะแปลงรายการวัตถุเป็นรายการคุณสมบัติเดียวของวัตถุนั้นได้อย่างไร
บอกว่าฉันมี: IList<Person> people = new List<Person>(); และวัตถุบุคคลมีคุณสมบัติเช่น FirstName, LastName และ Gender ฉันจะแปลงเป็นรายการคุณสมบัติของวัตถุบุคคลได้อย่างไร ตัวอย่างเช่นรายการชื่อ IList<string> firstNames = ???
108 c#  linq  list 

2
C # / Linq: ใช้ฟังก์ชันการแมปกับแต่ละองค์ประกอบใน IEnumerable?
ฉันกำลังมองหาวิธีเปลี่ยนองค์ประกอบแต่ละส่วนของ IE ที่ไม่สามารถคำนวณได้ให้เป็นอย่างอื่นโดยใช้ฟังก์ชันการทำแผนที่ (ในวิธีที่เข้ากันได้กับ Linq) แต่ฉันไม่พบอะไรเลย สำหรับตัวอย่าง (ง่ายมาก) มันควรจะทำได้เช่น IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 }; IEnumerable<string> strings = integers.Transform(i => i.ToString()); แต่ฉันไม่พบอะไรเลย ฉันหมายความว่ามันค่อนข้างตรงไปตรงมาที่จะเขียนวิธีการขยายที่ทำได้สำเร็จ (โดยพื้นฐานแล้วสิ่งที่ต้องมีก็คือการรวมตัวระบุแหล่งที่มาลงในคลาสใหม่จากนั้นเขียนโค้ดสำเร็จรูปเล็กน้อยเพื่อมอบหมายการโทร) แต่ฉันคาดหวังไว้ นี่เป็นการดำเนินการขั้นต้นพอสมควรและการเขียนมันเองให้ความรู้สึกเหมือนสร้างวงล้อขึ้นมาใหม่ - ฉันไม่สามารถเขย่าความรู้สึกว่าอาจมีวิธีในตัวที่ฉันควรใช้และฉันก็ตาบอดเกินไปที่จะมองเห็น มัน. มีอะไรใน Linq ที่อนุญาตให้ฉันทำตามที่อธิบายไว้ข้างต้นหรือไม่?
107 c#  linq 

4
C # Pass Lambda Expression เป็นพารามิเตอร์วิธีการ
ฉันมีนิพจน์แลมบ์ดาที่ฉันต้องการจะส่งต่อและนำกลับมาใช้ใหม่ได้ นี่คือรหัส: public List<IJob> getJobs(/* i want to pass the lambda expr in here */) { using (SqlConnection connection = new SqlConnection(getConnectionString())) { connection.Open(); return connection.Query<FullTimeJob, Student, FullTimeJob>(sql, (job, student) => { job.Student = student; job.StudentId = student.Id; return job; }, splitOn: "user_id", param: parameters).ToList<IJob>(); } คีย์ตรงนี้คือฉันต้องการส่งนิพจน์แลมบ์ดาที่ฉันใช้ตรงนี้ไปยังเมธอดที่เรียกรหัสนี้เพื่อที่ฉันจะได้ใช้ซ้ำ นิพจน์แลมบ์ดาเป็นอาร์กิวเมนต์ที่สองภายในเมธอด. เคียวรีของฉัน ฉันสมมติว่าฉันต้องการใช้ …
107 c#  linq  lambda 

4
สร้างพจนานุกรมในรายการด้วยการจัดกลุ่ม
ฉันมีวัตถุต่อไปนี้ในรายการ: public class DemoClass { public int GroupKey { get; set; } public string DemoString { get; set; } public object SomeOtherProperty { get; set; } } ตอนนี้ฉันต้องการสร้างพจนานุกรมต่อไปนี้จากมัน: Dictionary<int, List<DemoClass>> ฉันต้องการจัดกลุ่มList<DemoClass>ตามพร็อพเพอร์ตี้GroupKeyแต่ฉันไม่เข้าใจวิธีการดำเนินการนี้และความช่วยเหลือบางอย่าง หลังจากคิดสักนิดฉันก็บรรลุพฤติกรรมที่ต้องการด้วย: var groupedDemoClasses = from demoClass in mySepcialVariableWhichIsAListOfDemoClass group demoClass by demoClass.GroupKey into groupedDemoClass select groupedDemoClass; var neededDictionary = …
106 c#  .net  linq  .net-3.5 

2
มันคือ Linq หรือ Lambda?
ฉันรู้ว่านี่คือ Linq: var _Results = from item in _List where item.Value == 1 select item; และฉันรู้ว่านี่คือแลมด้า: var _Results = _List.Where(x => x.Value == 1); หมายเหตุบรรณาธิการ:ข้างต้นไม่ได้เป็นเพียง Lambda แต่เป็น Linq ที่ใช้ "Method Syntax" ซึ่งมีเพรดิเคตเป็น Lambda เพื่อความชัดเจนทั้งสองตัวอย่างข้างต้นคือ Linq (โพสต์ต้นฉบับของฉันไม่ถูกต้อง แต่ฉันทิ้งข้อผิดพลาดไว้เพื่อแสดงให้เห็นถึงความสับสนที่ทำให้เกิดคำถาม) แต่ Linq เป็นส่วนย่อยของ Lambda หรืออะไร? เหตุใดจึงมีสองเทคโนโลยีที่ดูเหมือนกัน มีเหตุผลทางเทคนิคในการเลือกอย่างใดอย่างหนึ่งหรือไม่?
106 c#  linq  lambda 

7
รหัส Linq เพื่อเลือกหนึ่งรายการ
ฉันพบว่าตัวเองเขียนโค้ดจำนวนมากเช่นนี้เพื่อเลือกรายการที่ตรงกัน var item = (from x in Items where x.Id == 123 select x).First(); มีวิธีทำที่สะอาดกว่านี้ไหมหรือจะรวบรัดเท่าที่ฉันจะได้รับ? แก้ไข: ควรจะพูดว่า "วิธีที่สะอาดกว่าโดยใช้ไวยากรณ์ linq" ฉันรู้ไวยากรณ์แลมบ์ดาแล้วและมันเริ่มดูเหมือนว่านี่เป็นวิธีเดียวเท่านั้น ฉันได้รับข้อมูลที่เป็นประโยชน์ดังนั้นขอบคุณทุกคนที่ตอบกลับ
105 c#  linq 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.