Skip to content

Commit a27e3f6

Browse files
committed
docs: Add C# 14 compatibility guidance to LINQ filtering examples
- Added educational comments explaining C# version compatibility for Contains methods - Clarified that String.Contains (instance method) works across all C# versions - Added guidance to use Any() for collection filtering instead of collection.Contains() - Addresses C# 14 MemoryExtensions.Contains resolution changes identified in PR3 review - Incorporates learnings from PR2-5 systematic review per Issue #10456
1 parent 7fdba17 commit a27e3f6

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

dotnet/samples/GettingStartedWithTextSearch/Step1_Web_Search.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,19 +205,28 @@ public Task SearchWithLinqFilteringAsync()
205205
Console.WriteLine("[OK] IntelliSense support - IDE shows available properties for each connector");
206206
Console.WriteLine("[OK] Type safety - strongly typed search results and filtering");
207207
Console.WriteLine("[OK] LINQ expressions - familiar &&, ||, Contains(), StartsWith(), comparisons, etc.");
208+
Console.WriteLine("[OK] C# version compatibility - expressions work across C# 12, 13, and 14+");
208209
Console.WriteLine("[OK] 100% backward compatibility - existing ITextSearch code unchanged");
209210
Console.WriteLine();
210211

211212
Console.WriteLine("=== Example LINQ Filtering Patterns ===");
212213
Console.WriteLine();
213214
Console.WriteLine("// Bing: Filter web pages by content and metadata");
214215
Console.WriteLine("Filter = page => page.Name.Contains(\"Microsoft\") && page.DateLastCrawled > DateTime.Now.AddDays(-7)");
216+
Console.WriteLine("// ↑ String.Contains (instance method) - works in all C# versions");
215217
Console.WriteLine();
216218
Console.WriteLine("// Google: Filter search results by domain and content");
217219
Console.WriteLine("Filter = result => result.Title.Contains(\"AI\") && result.DisplayLink.EndsWith(\".edu\")");
220+
Console.WriteLine("// ↑ String.Contains (instance method) - works in all C# versions");
218221
Console.WriteLine();
219222
Console.WriteLine("// Vector Store: Filter custom record types with complex logic");
220223
Console.WriteLine("Filter = record => record.Category == \"Technology\" && record.Score > 0.75 && record.Tags.Any(t => t == \"AI\")");
224+
Console.WriteLine("// ↑ Use Any() for collections");
225+
Console.WriteLine();
226+
Console.WriteLine("// C# 14 Compatibility Note:");
227+
Console.WriteLine("// - String.Contains() (instance method): ✅ Works in all C# versions");
228+
Console.WriteLine("// - For collection filtering, use Any() or Where(): array.Any(x => x == value)");
229+
Console.WriteLine("// - Avoid collection.Contains(item) in expressions (C# 14 resolution changes)");
221230
Console.WriteLine();
222231

223232
Console.WriteLine("The VectorStoreTextSearch already demonstrates this pattern in Step4!");

0 commit comments

Comments
 (0)