簡體   English   中英

如何在 C# LINQ 中搜索

[英]How to search in C# LINQ

我有一個來自前端應用程序的字符串搜索查詢,但查詢有問題。

我有一個具有 Id (number = int) 的對象列表。

如果用戶將在搜索框中輸入數字 12(字符串),他應該擁有所有包含 id 中數字 12 的對象列表。

對象(1,8,80,90,180); 另一個例子是如果用戶將輸入數字 8。他應該輸出 8,80,180;

這種事情的問題怎么寫linq?

任何例子記住搜索查詢是一個字符串,id 是一個數字:(

using System;
using System.Linq;
                    
public class Program
{
    public class MyObject
    {
        public int Id { get; set; }
    }
    
    public static void Main()
    {
        var arr = new MyObject[]
        {
            new MyObject() { Id = 1 },
            new MyObject() { Id = 8 },
            new MyObject() { Id = 80 },
            new MyObject() { Id = 90 },
            new MyObject() { Id = 180 }
        };

        var searchQuery = "8";
        
        var result = arr.Where(x => x.Id.ToString()
            .Contains(searchQuery))
            .Select(x => x.Id)
            .ToList();
        
        Console.WriteLine(String.Join(",", result));
    }
}

https://dotnetfiddle.net/AiIdg2

聽起來你想要這樣的東西

var input = "8";
var integers = new[] { 8, 80, 810, 70 };
var result = integers.Where(x => x.ToString().Contains(input));

這樣的事情就足夠了:

using System.Globalization;

namespace ConsoleApp2
{
  internal class Program
  {
    static void Main(string[] args)
    {
      var items = new[]
      {
        new Item { Id = 8 },
        new Item { Id = 18 },
        new Item { Id = 80 },
        new Item { Id = 6 },
        new Item { Id = 13 },
      };

      var itemsWithSearchString = items
        .Select(x => new { Item = x, SearchString = x.Id.ToString(CultureInfo.InvariantCulture) })
        .ToArray();

      const string userInput = "8";

      var matchingItems = itemsWithSearchString
        .Where(x => x.SearchString.Contains(userInput, StringComparison.Ordinal))
        .Select(x => x.Item)
        .ToArray();

      foreach (var item in matchingItems)
      {
        Console.WriteLine($"Matching item: {item}");
      }
    }
  }

  public class Item
  {
    public int Id { get; set; }

    public override string ToString()
    {
      return $"Id {this.Id}";
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM