Linq中使用ToString或Split等方法的方法

由于linq中不能使用ToString和Split等正常的函数,因为会提示无法转存为sql,所以无法直接使用,但是可以先查询出结果,再ToList(),然后再进行ToString或Split就可以了,这个方法真的不错


            List<string> areaList = AreaList(areaCode);
            DB _db = new DB();
            var keyOne = (from t in _db.Transacts
                          where t.TArea.Contains(areaCode)
                          select t).ToList().Where(t => t.TSort.Split(',').Contains(type)).Select(t => t);
            return keyOne;

这个例子是因为我要作一个功能,这个功能是分类别的,数据库里存的类别形式如下:

“11,123,234”

这样用逗号分隔的数据,如果要是直接t.TSort.Contains(type)的话,那么就相当于Like语句了,type为1时也是可以通过的,所以必须使用数组的Contains才能正确的匹对,找了好久才找到的方法,希望需要的人可以看到


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,点餐系统可以分为客户端和服务端两部分。客户端负责展示菜单、接收用户的点餐信息以及向服务端发送请求。服务端负责处理请求,保存订单信息并提供管理订单的功能。以下是一个简单的C#点餐系统示例: ### 客户端 ```csharp using System; using System.Net.Http; using System.Text.Json; using System.Collections.Generic; namespace OrderClient { class Program { static HttpClient client = new HttpClient(); static JsonSerializerOptions options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true }; static void Main(string[] args) { while (true) { Console.WriteLine("欢迎使用点餐系统!"); Console.WriteLine("请选择您要点的菜品:"); // 获取菜单信息 var menu = GetMenu(); foreach (var item in menu) { Console.WriteLine($"{item.Id}: {item.Name} - {item.Price}元"); } // 输入订单信息 Console.Write("请输入您要点的菜品编号,多个菜品请用逗号隔开:"); var input = Console.ReadLine(); // 发送订单信息到服务端 var order = new Order { Items = input.Split(',') }; var response = client.PostAsJsonAsync("http://localhost:5000/orders", order).Result; if (response.IsSuccessStatusCode) { Console.WriteLine("订单提交成功!"); } else { Console.WriteLine("订单提交失败,请稍后再试!"); } Console.WriteLine("按任意键继续点餐,按q退出程序。"); var key = Console.ReadKey(); if (key.KeyChar == 'q') { break; } } } static List<MenuItem> GetMenu() { var response = client.GetAsync("http://localhost:5000/menu").Result; if (response.IsSuccessStatusCode) { var content = response.Content.ReadAsStringAsync().Result; return JsonSerializer.Deserialize<List<MenuItem>>(content, options); } else { return new List<MenuItem>(); } } } class Order { public string[] Items { get; set; } } class MenuItem { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } } ``` ### 服务端 ```csharp using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace OrderServer.Controllers { [ApiController] [Route("[controller]")] public class OrdersController : ControllerBase { private static readonly List<Order> orders = new List<Order>(); private static readonly List<MenuItem> menu = new List<MenuItem> { new MenuItem { Id = 1, Name = "麻婆豆腐", Price = 18.5M }, new MenuItem { Id = 2, Name = "宫保鸡丁", Price = 22M }, new MenuItem { Id = 3, Name = "清蒸鲈鱼", Price = 56M }, new MenuItem { Id = 4, Name = "红烧肉", Price = 38M }, new MenuItem { Id = 5, Name = "酸菜鱼", Price = 48M } }; private readonly ILogger<OrdersController> _logger; public OrdersController(ILogger<OrdersController> logger) { _logger = logger; } [HttpGet] [Route("menu")] public List<MenuItem> GetMenu() { return menu; } [HttpPost] public IActionResult Post([FromBody] OrderRequest request) { var order = new Order { Id = Guid.NewGuid().ToString(), Items = request.Items.Select(GetMenuItemById).ToList(), TotalPrice = request.Items.Select(GetMenuItemById).Sum(item => item.Price) }; orders.Add(order); return Ok(); } [HttpGet] public List<Order> Get() { return orders; } [HttpDelete] public IActionResult Delete(string id) { var order = orders.FirstOrDefault(o => o.Id == id); if (order != null) { orders.Remove(order); return Ok(); } else { return NotFound(); } } private MenuItem GetMenuItemById(string id) { if (int.TryParse(id, out var itemId)) { return menu.FirstOrDefault(item => item.Id == itemId); } else { throw new ArgumentException("Invalid item id", nameof(id)); } } } public class OrderRequest { public string[] Items { get; set; } } public class Order { public string Id { get; set; } public List<MenuItem> Items { get; set; } public decimal TotalPrice { get; set; } } public class MenuItem { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } } ``` 以上代码仅供参考,实际生产环境需要考虑更多的安全性、性能等方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值