<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 如何:在運行時動態指定謂詞篩選器(C# 編程指南) 在某些情況下,您直到運行時才能知道必須將多少個謂詞應用于 **where** 子句中的源元素。動態指定多個謂詞篩選器的一種方式是使用 [Contains&lt;TSource&gt;](https://msdn.microsoft.com/zh-cn/library/bb352880.aspx) 方法,如下面的示例中所示。此示例按兩種方式構造。首先,通過篩選程序中提供的值來運行項目。然后,使用運行時提供的輸入再次運行項目。 ## 使用 Contains 方法進行篩選 1. 在 Visual Studio 中,打開一個新的控制臺應用程序。將其命名為 PredicateFilters。 2. 從[如何:查詢對象集合(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/bb907066.aspx)中復制 StudentClass 類,并將此類粘貼到 Program 類下方的命名空間 PredicateFilters 中。 StudentClass 提供了 Student 對象的列表。 3. 將 StudentClass 中的 Main 方法注釋掉。 4. 將 Program 類替換為以下代碼。 ``` class DynamicPredicates : StudentClass { static void Main(string[] args) { string[] ids = { "111", "114", "112" }; Console.WriteLine("Press any key to exit."); Console.ReadKey(); } static void QueryByID(string[] ids) { var queryNames = from student in students let i = student.ID.ToString() where ids.Contains(i) select new { student.LastName, student.ID }; foreach (var name in queryNames) { Console.WriteLine("{0}: {1}", name.LastName, name.ID); } } } ``` 5. 在 DynamicPredicates 類的 Main 方法中的 ids 聲明下添加以下行。 ``` QueryById(ids); ``` 6. 按 F5 運行項目。 7. 命令提示符窗口中將顯示以下輸出: Garcia: 114 O'Donnell: 112 Omelchenko: 111 8. 下一步是重新運行項目,這次使用在運行時輸入的輸入內容而不是數組 ids 來運行項目。在**“解決方案資源管理器”**中右擊**“PredicateFilters”**,然后單擊**“屬性”**。 9. 單擊**“調試”**選項卡。 10. 在**“命令行參數”**窗口中,按如下方式鍵入 122、117、120 和 115(用空格隔開):**122 117 120 115**。在運行項目時,這些值將成為 Main 方法的參數 args 的元素。 11. 在 Main 方法中,將 QueryByID(ids) 更改為 QueryByID(args)。 12. 按 F5 運行項目。 13. 命令提示符窗口中將顯示以下輸出: Adams: 120 Feng: 117 Garcia: 115 Tucker: 122 ## 使用 switch 語句進行篩選 1. 可以使用 **switch** 語句在預先確定的備選查詢中進行選擇。在下面的示例中,studentQuery 使用的 **where** 子句隨著在運行時指定的年級或年份的不同而不同。 2. 復制以下方法并將其粘貼到類 DynamicPredicates 中。 ``` // To run this sample, first specify an integer value of 1 to 4 for the command // line. This number will be converted to a GradeLevel value that specifies which // set of students to query. // Call the method: QueryByYear(args[0]); static void QueryByYear(string level) { GradeLevel year = (GradeLevel)Convert.ToInt32(level); IEnumerable&lt;Student&gt; studentQuery = null; switch (year) { case GradeLevel.FirstYear: studentQuery = from student in students where student.Year == GradeLevel.FirstYear select student; break; case GradeLevel.SecondYear: studentQuery = from student in students where student.Year == GradeLevel.SecondYear select student; break; case GradeLevel.ThirdYear: studentQuery = from student in students where student.Year == GradeLevel.ThirdYear select student; break; case GradeLevel.FourthYear: studentQuery = from student in students where student.Year == GradeLevel.FourthYear select student; break; default: break; } Console.WriteLine("The following students are at level {0}", year.ToString()); foreach (Student name in studentQuery) { Console.WriteLine("{0}: {1}", name.LastName, name.ID); } } ``` 3. 在**“命令行參數”**窗口中,將上一過程中的 ID 號替換為一個介于 1 到 4 之間的整數值。 4. 在 Main 方法中,將對 QueryByID 的調用替換為以下調用,此調用可將 args 數組中的第一個元素作為其參數發送:QueryByYear(args[0])。 5. 按 F5 運行項目。 ## 在您自己的應用程序中使用此方法 * 在改編此方法以適合您自己的應用程序時,請記住,LINQ 需要版本 3.5 或版本 4 的 .NET Framework,并且項目必須包含一個對 System.Core.dll 的引用和一條針對 **System.Linq** 的 **using** 指令。LINQ to SQL、LINQ to XML 和 LINQ to DataSet 類型需要相應的其他 **using** 指令和引用。有關更多信息,請參見 [How to: Create a LINQ Project](https://msdn.microsoft.com/zh-cn/library/bb546156.aspx)。 ## 請參閱 [LINQ 查詢表達式(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/bb397676.aspx) [where 子句(C# 參考)](https://msdn.microsoft.com/zh-cn/library/bb311043.aspx)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看