在 c# 中使用具有第一个字母 "AA" 的条件的 Find()

Using Find() with conditional that have the first letter "AA" in c#

可以使用“首字母为 A”这一条件查找某些数据

下面是我如何使用 find() 找到与输入

相等的 id_cart
var store = await _cartCollection.Find(x => x.id_cart == entity.id_cart).ToListAsync();

但是我想改成这样,不知道怎么改

string key = "ID";
var store = await _cartCollection.Find(x => x.id_cart "that have the first character" key).ToListAsync();

可能吗?我应该怎么做?

您可以使用.StartsWith(),

string key = "ID";
var store = await _cartCollection.Find(x => x.id_cart.StartsWith(key)).ToListAsync();

在 c# 和 .Net 中有一个名为 StartsWith() 的方法,它 returns 一个布尔值。

源码头:https://docs.microsoft.com/it-it/dotnet/api/system.string.startswith?view=net-5.0

var store = await _cartCollection.Find(x => x.id_cart.StartsWith(key)).ToListAsync();

如果您想忽略区分大小写,只需使用 StringComparer.InvariantCultureIgnoreCase 我通常使用 Where() 只是因为它类似于 SQL 语句并且更具可读性。希望能解决。