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

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

3
ฉันจะแน่ใจได้อย่างไรว่า FirstOrDefault <KeyValuePair> ส่งคืนค่า
นี่เป็นเวอร์ชันที่เรียบง่ายของสิ่งที่ฉันกำลังพยายามทำ: var days = new Dictionary&lt;int, string&gt;(); days.Add(1, "Monday"); days.Add(2, "Tuesday"); ... days.Add(7, "Sunday"); var sampleText = "My favorite day of the week is 'xyz'"; var day = days.FirstOrDefault(x =&gt; sampleText.Contains(x.Value)); เนื่องจากไม่มี 'xyz' ในพจนานุกรมเมธอด FirstOrDefault จะไม่ส่งคืนค่าที่ถูกต้อง ฉันต้องการตรวจสอบสถานการณ์นี้ แต่ฉันตระหนักดีว่าฉันไม่สามารถเปรียบเทียบผลลัพธ์กับ "null" ได้เนื่องจาก KeyValuePair เป็นโครงสร้าง รหัสต่อไปนี้ไม่ถูกต้อง: if (day == null) { System.Diagnotics.Debug.Write("Couldn't find …
91 c#  linq 

3
อะไรคือความแตกต่างระหว่าง“ LINQ to Entities”,“ LINQ to SQL” และ“ LINQ to Dataset”
ฉันทำงานกับ LINQ มาระยะหนึ่งแล้ว อย่างไรก็ตามยังคงเป็นปริศนาอยู่เล็กน้อยว่าความแตกต่างที่แท้จริงระหว่างรสชาติที่กล่าวถึงของ LINQ คืออะไร คำตอบที่ประสบความสำเร็จจะมีความแตกต่างสั้น ๆ ระหว่างพวกเขา เป้าหมายหลักของแต่ละรสชาติคืออะไรมีประโยชน์อย่างไรและมีผลต่อประสิทธิภาพ ... ป.ล. ฉันรู้ว่ามีแหล่งข้อมูลมากมายอยู่ที่นั่น แต่ฉันกำลังมองหา "ข้อมูลโกง" ชนิดหนึ่งที่แนะนำให้มือใหม่ไปหาเป้าหมายที่เจาะจง
91 c#  sql  linq  dataset  entities 

7
linq query เพื่อส่งคืนค่าฟิลด์ที่แตกต่างจากรายการวัตถุ
class obj { int typeId; //10 types 0-9 string uniqueString; //this is unique } สมมติว่ามีรายการที่มีองค์ประกอบของ obj 100 รายการ แต่มีเฉพาะ typeID 10 รายการเท่านั้น เป็นไปได้ไหมที่จะเขียนแบบสอบถาม LINQ ส่งคืน 10 ints ที่ไม่ซ้ำกันจากรายการ objs
91 c#  linq 

15
ตัวดำเนินการ LIKE ใน LINQ
มีวิธีใดบ้างในการเปรียบเทียบสตริงในนิพจน์ C # LINQ ที่คล้ายกับLIKEตัวดำเนินการของ SQL สมมติว่าฉันมีรายการสตริง ในรายการนี้ฉันต้องการค้นหาสตริง ใน SQL ฉันสามารถเขียน: SELECT * FROM DischargePort WHERE PortName LIKE '%BALTIMORE%' แทนที่จะเป็นข้างต้นแบบสอบถามต้องการไวยากรณ์ linq using System.Text.RegularExpressions; … var regex = new Regex(sDischargePort, RegexOptions.IgnoreCase); var sPortCode = Database.DischargePorts .Where(p =&gt; regex.IsMatch(p.PortName)) .Single().PortCode; ไวยากรณ์ LINQ ข้างต้นของฉันไม่ทำงาน ฉันผิดอะไร
90 c#  linq  sql-like 

7
สร้าง Tuple ใน Linq Select
ฉันกำลังทำงานกับ C # และ. NET Framework 4.5.1 เพื่อดึงข้อมูลจากฐานข้อมูล SQL Server ด้วย Entity Framework 6.1.3 ฉันมีสิ่งนี้: codes = codesRepo.SearchFor(predicate) .Select(c =&gt; new Tuple&lt;string, byte&gt;(c.Id, c.Flag)) .ToList(); และเมื่อเรียกใช้ฉันจะได้รับข้อความนี้: รองรับเฉพาะตัวสร้างและตัวเริ่มต้นที่ไม่มีพารามิเตอร์เท่านั้นใน LINQ ถึงเอนทิตี ฉันไม่รู้ว่าฉันต้องสร้าง Tuple อย่างไรเพราะตัวอย่างทั้งหมดที่ฉันพบส่วนใหญ่เป็นแบบนี้ ฉันได้ลองสิ่งนี้: codes = codesRepo.SearchFor(predicate) .Select(c =&gt; Tuple.Create(c.Id, c.Flag)) .ToList(); และรับข้อผิดพลาดนี้: LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.Tuple'2 [System.String, System Byte] Create [String, …

7
รับโค้ด HTML จากเว็บไซต์ใน C #
วิธีรับโค้ด HTML จากเว็บไซต์บันทึกและค้นหาข้อความโดยใช้นิพจน์ LINQ ฉันใช้รหัสต่อไปนี้เพื่อรับแหล่งที่มาของหน้าเว็บ: public static String code(string Url) { HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url); myRequest.Method = "GET"; WebResponse myResponse = myRequest.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); string result = sr.ReadToEnd(); sr.Close(); myResponse.Close(); return result; } ฉันจะค้นหาข้อความใน div ในแหล่งที่มาของหน้าเว็บได้อย่างไร
89 c#  html  linq 

3
LINQ ไปยังเอนทิตีไม่รู้จักเมธอด 'System.String Format (System.String, System.Object, System.Object)'
ฉันมีแบบสอบถาม linq นี้: private void GetReceivedInvoiceTasks(User user, List&lt;Task&gt; tasks) { var areaIds = user.Areas.Select(x =&gt; x.AreaId).ToArray(); var taskList = from i in _db.Invoices join a in _db.Areas on i.AreaId equals a.AreaId where i.Status == InvoiceStatuses.Received &amp;&amp; areaIds.Contains(a.AreaId) select new Task { LinkText = string.Format(Invoice {0} has been received from {1}, …

3
มีไวยากรณ์ C # LINQ สำหรับเมธอด Queryable.SelectMany () หรือไม่
เมื่อเขียนแบบสอบถามโดยใช้ไวยากรณ์ C # LINQ มีวิธีใช้ Queryable.SelectMany จากไวยากรณ์คำหลักหรือไม่ สำหรับ string[] text = { "Albert was here", "Burke slept late", "Connor is happy" }; ใช้วิธีการที่คล่องแคล่วฉันสามารถสอบถามได้ var tokens = text.SelectMany(s =&gt; s.Split(' ')); มีรูปแบบการสืบค้นที่คล้ายกับ var tokens = from x in text selectmany s.Split(' ')
88 c#  linq  keyword  iqueryable 

5
จะรอรายการงานแบบอะซิงโครนัสโดยใช้ LINQ ได้อย่างไร?
ฉันมีรายการงานที่ฉันสร้างไว้ดังนี้: public async Task&lt;IList&lt;Foo&gt;&gt; GetFoosAndDoSomethingAsync() { var foos = await GetFoosAsync(); var tasks = foos.Select(async foo =&gt; await DoSomethingAsync(foo)).ToList(); ... } โดยการใช้.ToList()งานควรเริ่มต้นทั้งหมด ตอนนี้ฉันต้องการรอให้เสร็จสิ้นและส่งคืนผลลัพธ์ สิ่งนี้ใช้ได้ใน...บล็อกด้านบน: var list = new List&lt;Foo&gt;(); foreach (var task in tasks) list.Add(await task); return list; มันทำในสิ่งที่ฉันต้องการ แต่ดูเหมือนจะค่อนข้างเงอะงะ ฉันอยากจะเขียนอะไรที่ง่ายกว่านี้: return tasks.Select(async task =&gt; await task).ToList(); ... แต่นี่ไม่ได้รวบรวม ฉันขาดอะไรไป? …
88 c#  linq  async-await 

12
ค้นหาต้นไม้โดยใช้ LINQ
ฉันมีต้นไม้ที่สร้างขึ้นจากคลาสนี้ class Node { public string Key { get; } public List&lt;Node&gt; Children { get; } } ฉันต้องการค้นหาเด็กทุกคนและลูก ๆ ทุกคนเพื่อให้ได้คนที่ตรงกับเงื่อนไข: node.Key == SomeSpecialKey ฉันจะใช้งานได้อย่างไร?
87 c#  .net  linq 

3
ละเว้นเนมสเปซใน LINQ เป็น XML
ฉันจะมี LINQ เป็น XML iqnore เนมสเปซทั้งหมดได้อย่างไร หรือในทางกลับกันฉันจะตัดเนมสเปซออกได้อย่างไร ฉันถามเพราะเนมสเปซถูกตั้งค่าแบบกึ่งสุ่มและฉันเบื่อที่จะต้องค้นหาโหนดทั้งที่มีและไม่มีเนมสเปซ
87 .net  xml  linq 

3
LINQ ทำงานร่วมกับ IEnumerable หรือไม่
ฉันได้เรียนที่นำไปปฏิบัติแต่ไม่ได้ดำเนินการIEnumerable IEnumerable&lt;T&gt;ฉันไม่สามารถเปลี่ยนชั้นเรียนนี้และฉันไม่สามารถใช้ชั้นเรียนอื่นแทนได้ เป็นฉันได้เข้าใจจาก MSDN LINQ IEnumerable&lt;T&gt;สามารถใช้ในกรณีการดำเนินการระดับ ฉันได้ลองใช้instance.ToQueryable()แล้ว แต่ยังไม่เปิดใช้งานเมธอด LINQ ฉันรู้แน่นอนว่าคลาสนี้สามารถมีอินสแตนซ์ได้เพียงประเภทเดียวดังนั้นคลาสจึงสามารถใช้งานIEnumerable&lt;T&gt;ได้ แต่ก็ไม่ได้ ฉันจะสอบถามคลาสนี้โดยใช้นิพจน์ LINQ ได้อย่างไร
87 .net  linq  ienumerable 

10
'มี ()' วิธีแก้ปัญหาโดยใช้ Linq ไปยังเอนทิตี?
ฉันกำลังพยายามสร้างแบบสอบถามที่ใช้รายการรหัสในส่วนคำสั่ง where โดยใช้ API ไคลเอนต์ Silverlight ADO.Net Data Services (และดังนั้น Linq To Entities) ไม่มีใครรู้วิธีแก้ปัญหาสำหรับการประกอบด้วยที่ไม่รองรับ? ฉันต้องการทำสิ่งนี้: List&lt;long?&gt; txnIds = new List&lt;long?&gt;(); // Fill list var q = from t in svc.OpenTransaction where txnIds.Contains(t.OpenTransactionId) select t; ลองสิ่งนี้: var q = from t in svc.OpenTransaction where txnIds.Any&lt;long&gt;(tt =&gt; tt == t.OpenTransactionId) select t; …

4
คำหลัก let ของ linq ดีกว่าคำหลักหรือไม่?
ตอนนี้ฉันกำลังใช้ LINQ และกำลังพยายามทำความเข้าใจความแตกต่างระหว่างคำหลักletและการใช้intoคำหลัก จนถึงตอนนี้letคีย์เวิร์ดดูเหมือนดีกว่าintoคีย์เวิร์ดเท่าที่ฉันเข้าใจ โดยintoหลักแล้วคำหลักช่วยให้สามารถดำเนินการสืบค้นต่อไปได้หลังจากการฉายภาพ (เพียงต้องการระบุอย่างชัดเจนว่าฉันไม่ได้หมายถึงหนึ่งในการเข้าร่วมกลุ่ม) ด้วยอาร์เรย์ของชื่อที่อนุญาตให้ทำสิ่งต่อไปนี้: var intoQuery = from n in names select Regex.Replace(n, "[aeiou]", "") into noVowel where noVowel.Length &gt; 2 select noVowel; มันต้องใช้ผลมาจากการเลือกและวางมันลงไปในnoVowelตัวแปรแล้วซึ่งช่วยให้หนึ่งที่จะแนะนำเพิ่มเติมwhere, orderbyและselectข้อ เมื่อnoVowelสร้างnตัวแปรแล้วตัวแปรจะไม่สามารถใช้ได้อีกต่อไป ในทางกลับกันletคำหลักจะใช้ประเภทที่ไม่ระบุตัวตนชั่วคราวเพื่อให้คุณสามารถใช้ตัวแปรได้มากกว่าหนึ่งตัวแปรในแต่ละครั้ง คุณสามารถทำสิ่งต่อไปนี้: var letQuery = from n in names let noVowel = Regex.Replace(n, "[aeiou]", "") where noVowel.Length &gt; 2 select noVowel; …
86 c#  linq 

3
Union Vs Concat ใน Linq
ฉันมีคำถามเกี่ยวกับUnionและConcat. ฉันเดาว่าทั้งคู่มีพฤติกรรมเหมือนกันในกรณีList&lt;T&gt;นี้ var a1 = (new[] { 1, 2 }).Union(new[] { 1, 2 }); // O/P : 1 2 var a2 = (new[] { 1, 2 }).Concat(new[] { 1, 2 }); // O/P : 1 2 1 2 var a3 = (new[] { "1", "2" }).Union(new[] { "1", "2" }); …
86 c#  linq 

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