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

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

9
เชื่อมสตริงทั้งหมดภายใน List <string> โดยใช้ LINQ
มีการแสดงออก LINQ ง่าย ๆ ที่จะเรียงทั้งหมดของฉัน List&lt;string&gt;รายการคอลเลกชันเข้าstringด้วยกันด้วยอักขระตัวคั่นหรือไม่ เกิดอะไรขึ้นถ้าคอลเลกชันเป็นของวัตถุที่กำหนดเองแทนstring? ลองนึกภาพฉันต้อง concatenate object.Nameบน
543 c#  linq  .net-3.5 

22
ซ้ายเข้าร่วมใน LINQ
วิธีดำเนินการรวมด้านนอกด้านซ้ายใน C # LINQ กับวัตถุโดยไม่ต้องใช้join-on-equals-intoคำสั่ง มีวิธีใดที่จะทำเช่นนั้นด้วยwhereประโยค? แก้ไขปัญหา: สำหรับการเข้าร่วมภายในเป็นเรื่องง่ายและฉันมีวิธีแก้ปัญหาเช่นนี้ List&lt;JoinPair&gt; innerFinal = (from l in lefts from r in rights where l.Key == r.Key select new JoinPair { LeftId = l.Id, RightId = r.Id}) แต่สำหรับด้านนอกเข้าร่วมฉันต้องการวิธีแก้ปัญหา ฉันเป็นแบบนี้ แต่มันไม่ทำงาน List&lt; JoinPair&gt; leftFinal = (from l in lefts from r in rights select new …
539 c#  linq  join 

10
ใช้ LINQ เพื่อรับรายการในหนึ่งรายการ <> ที่ไม่ได้อยู่ในรายการอื่น <>
ฉันจะสมมติว่ามีการสืบค้น LINQ แบบง่าย ๆ เพื่อทำสิ่งนี้ฉันไม่แน่ใจจริงๆ รับรหัสชิ้นนี้: class Program { static void Main(string[] args) { List&lt;Person&gt; peopleList1 = new List&lt;Person&gt;(); peopleList1.Add(new Person() { ID = 1 }); peopleList1.Add(new Person() { ID = 2 }); peopleList1.Add(new Person() { ID = 3 }); List&lt;Person&gt; peopleList2 = new List&lt;Person&gt;(); peopleList2.Add(new Person() { ID = …
526 c#  linq  .net-3.5 

16
มันจะดีกว่าที่จะเรียก ToList () หรือ ToArray () ในการสืบค้น LINQ?
ฉันมักจะทำงานในกรณีที่ฉันต้องการที่จะประเมินการสอบถามที่ฉันประกาศ นี่เป็นเพราะฉันต้องทำซ้ำหลาย ๆ ครั้งและมันมีราคาแพงในการคำนวณ ตัวอย่างเช่น: string raw = "..."; var lines = (from l in raw.Split('\n') let ll = l.Trim() where !string.IsNullOrEmpty(ll) select ll).ToList(); ใช้งานได้ดี แต่ถ้าฉันจะไม่แก้ไขผลลัพธ์ฉันก็อาจจะโทรหาคุณToArray()แทนToList()ก็ได้ แต่ฉันสงสัยว่าToArray()จะดำเนินการโดยการโทรครั้งแรกและเป็นหน่วยความจำจึงมีประสิทธิภาพน้อยกว่าเพียงแค่โทรToList()ToList() ฉันบ้าเหรอ? ฉันควรจะโทรToArray()- ปลอดภัยในความรู้ที่หน่วยความจำจะไม่ถูกจัดสรรสองครั้ง?
519 .net  linq  performance 

21
การดึงชื่อคุณสมบัติจากแลมบ์ดานิพจน์
มีวิธีที่ดีกว่าที่จะได้รับชื่อทรัพย์สินเมื่อส่งผ่านผ่านการแสดงออกแลมบ์ดา? นี่คือสิ่งที่ฉันมีอยู่ในปัจจุบัน เช่น. GetSortingInfo&lt;User&gt;(u =&gt; u.UserId); มันทำงานโดยการหล่อมันเป็น memberexpression เฉพาะเมื่อคุณสมบัติเป็นสตริง เพราะคุณสมบัติไม่ทั้งหมดเป็นสตริงที่ฉันต้องใช้วัตถุ แต่แล้วมันจะส่งกลับ unaryexpression สำหรับเหล่านั้น public static RouteValueDictionary GetInfo&lt;T&gt;(this HtmlHelper html, Expression&lt;Func&lt;T, object&gt;&gt; action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as …

15
LINQ: เมื่อใดที่จะใช้ SingleOrDefault vs. FirstOrDefault () กับเกณฑ์การกรอง
พิจารณาวิธีการขยาย IEnumerable SingleOrDefault()และFirstOrDefault() เอกสาร MSDN ที่SingleOrDefault : ส่งคืนองค์ประกอบเดียวของลำดับหรือค่าเริ่มต้นหากลำดับว่างเปล่า วิธีการนี้จะยกเว้นถ้ามีมากกว่าหนึ่งองค์ประกอบในลำดับ ขณะที่FirstOrDefaultจาก MSDN (สมมุติเมื่อใช้OrderBy()หรือ OrderByDescending()หรือไม่มีเลย) ส่งคืนองค์ประกอบแรกของลำดับ พิจารณาตัวอย่างแบบสอบถามจำนวนหนึ่งซึ่งไม่ชัดเจนว่าจะให้ใช้สองวิธีนี้เมื่อใด: var someCust = db.Customers .SingleOrDefault(c=&gt;c.ID == 5); //unlikely(?) to be more than one, but technically COULD BE var bobbyCust = db.Customers .FirstOrDefault(c=&gt;c.FirstName == "Bobby"); //clearly could be one or many, so use First? var latestCust …
506 .net  linq  linq-to-sql 

16
อัปเดตวัตถุทั้งหมดในชุดรวมโดยใช้ LINQ
มีวิธีการทำสิ่งต่อไปนี้โดยใช้ LINQ หรือไม่? foreach (var c in collection) { c.PropertyToSet = value; } เพื่อชี้แจงฉันต้องการย้ำผ่านแต่ละวัตถุในคอลเลกชันแล้วปรับปรุงคุณสมบัติในแต่ละวัตถุ กรณีการใช้งานของฉันคือฉันมีความคิดเห็นมากมายในบล็อกโพสต์และฉันต้องการย้ำผ่านแต่ละความคิดเห็นในบล็อกโพสต์และตั้งค่าวันที่ในบล็อกโพสต์ให้เป็น +10 ชั่วโมง ฉันสามารถทำได้ใน SQL แต่ฉันต้องการเก็บไว้ในชั้นธุรกิจ
500 c#  .net  linq  foreach 

12
วิธีใช้ LINQ เพื่อเลือกวัตถุที่มีค่าคุณสมบัติขั้นต่ำหรือสูงสุด
ฉันมีวัตถุบุคคลที่มีคุณสมบัติ DateOfBirth Nullable มีวิธีการใช้ LINQ ในการค้นหารายการของวัตถุบุคคลสำหรับหนึ่งที่มีค่า DateOfBirth เร็วที่สุด / เล็กที่สุด นี่คือสิ่งที่ฉันเริ่มต้นด้วย: var firstBornDate = People.Min(p =&gt; p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue)); ค่า Null DateOfBirth ถูกตั้งค่าเป็น DateTime.MaxValue เพื่อที่จะตัดออกจากการพิจารณาขั้นต่ำ (สมมติว่าอย่างน้อยหนึ่งตัวมี DOB ที่ระบุ) แต่สิ่งที่ทำเพื่อฉันคือการตั้งค่า firstBornDate เป็นค่า DateTime สิ่งที่ฉันต้องการได้คือวัตถุบุคคลที่ตรงกับที่ ฉันต้องเขียนคำถามที่สองเช่นนี้หรือไม่: var firstBorn = People.Single(p=&gt; (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate); หรือมีวิธีการที่บางกว่าหรือไม่?
466 c#  .net  linq 

9
เข้าร่วม / ที่ไหนด้วย LINQ และ Lambda
ฉันมีปัญหากับแบบสอบถามที่เขียนใน LINQ และ Lambda จนถึงตอนนี้ฉันได้รับข้อผิดพลาดมากมายที่นี่เป็นรหัสของฉัน: int id = 1; var query = database.Posts.Join(database.Post_Metas, post =&gt; database.Posts.Where(x =&gt; x.ID == id), meta =&gt; database.Post_Metas.Where(x =&gt; x.Post_ID == id), (post, meta) =&gt; new { Post = post, Meta = meta }); ฉันใหม่กับการใช้ LINQ ดังนั้นฉันไม่แน่ใจว่าแบบสอบถามนี้ถูกต้องหรือไม่
458 c#  linq  join  lambda 

4
LINQ Order โดยการสอบถามจากมากไปน้อย
ฉันแน่ใจว่านี่จะค่อนข้างง่าย ฉันมีคำสั่ง LINQ ที่ฉันต้องการสั่งซื้อตามวันที่สร้างล่าสุด ดู: var itemList = from t in ctn.Items where !t.Items &amp;&amp; t.DeliverySelection orderby t.Delivery.SubmissionDate descending select t; ฉันได้ลองด้วย: var itemList = (from t in ctn.Items where !t.Items &amp;&amp; t.DeliverySelection select t).OrderByDescending(); แต่นี่ทำให้เกิดข้อผิดพลาด: ไม่มีการโอเวอร์โหลดสำหรับเมธอด 'OrderByDescending' ที่รับ 0 อาร์กิวเมนต์ จากสิ่งที่ฉันอ่านฉันค่อนข้างแน่ใจว่าวิธีแรกที่ฉันทำมันควรจะใช้ได้ ฉันได้ลองเปลี่ยนจากมากไปน้อยเป็นน้อยไปหามากเพื่อดูว่ามันทำอะไร แต่มันยังคงเหมือนเดิม ฉันจะขอบคุณถ้ามีคนสามารถดูคำถามและดูว่าฉันทำอะไรผิด ขอบคุณ :)
439 c#  linq  sql-order-by 

13
ความแตกต่างระหว่าง IQueryable <T> และ IEnumerable <T> คืออะไร
ความแตกต่างระหว่างIQueryable&lt;T&gt;และIEnumerable&lt;T&gt;คืออะไร? ดูเพิ่มเติมความแตกต่างระหว่าง IQueryable และ IEnumerableที่ทับซ้อนกับคำถามนี้คืออะไร

6
LINQ. VS ใด ๆ อยู่ - ความแตกต่างคืออะไร
การใช้ LINQ กับคอลเล็กชั่นอะไรคือความแตกต่างระหว่างบรรทัดโค้ดต่อไปนี้? if(!coll.Any(i =&gt; i.Value)) และ if(!coll.Exists(i =&gt; i.Value)) อัปเดต 1 เมื่อฉันถอดแยกชิ้นส่วน.Existsดูเหมือนว่าไม่มีรหัส อัปเดต 2 ใครรู้ว่าทำไมไม่มีรหัสสำหรับหนึ่งนี้
413 c#  linq  collections 

14
วิธีทำ SQL Like% ใน Linq
ฉันมีขั้นตอนใน SQL ที่ฉันพยายามเปลี่ยนเป็น Linq: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' บรรทัดที่ฉันกังวลมากที่สุดคือ: where OH.Hierarchy like '%/12/%' ฉันมีคอลัมน์ที่เก็บลำดับชั้นเช่น / 1/3/12 / ดังนั้นฉันจึงใช้% / 12 /% เพื่อค้นหา คำถามของฉันคือ Linq หรือ. NET เทียบเท่ากับการใช้เครื่องหมายเปอร์เซ็นต์คืออะไร?

29
แยกรายการเป็นรายการย่อยด้วย LINQ
มีวิธีใดบ้างที่ฉันสามารถแยก a List&lt;SomeObject&gt;ออกเป็นหลาย ๆ รายการSomeObjectโดยใช้ดัชนีรายการเป็นตัวคั่นของแต่ละการแบ่ง ให้ฉันเป็นตัวอย่าง: ฉันมีList&lt;SomeObject&gt;และฉันต้องการList&lt;List&lt;SomeObject&gt;&gt;หรือList&lt;SomeObject&gt;[]เพื่อให้แต่ละรายการผลลัพธ์เหล่านี้จะมีกลุ่ม 3 รายการของรายการต้นฉบับ (เรียงตามลำดับ) เช่น.: รายการเดิม: [a, g, e, w, p, s, q, f, x, y, i, m, c] รายการผลลัพธ์: [a, g, e], [w, p, s], [q, f, x], [y, i, m], [c] ฉันต้องการขนาดรายการผลลัพธ์เพื่อเป็นพารามิเตอร์ของฟังก์ชันนี้
377 c#  linq  data-structures 

6
รักษาลำดับด้วย LINQ
ฉันใช้ LINQ กับคำสั่ง Objects ในอาเรย์ที่สั่ง การดำเนินการใดที่ฉันไม่ควรทำเพื่อให้แน่ใจว่าลำดับของอาร์เรย์จะไม่เปลี่ยนแปลง?

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