SQL_LINQ left join list<string>

我们经常会有这样ongcha的需求:给一个字符串的列表,到数据库中查找相关匹配的字段,当然在数据库中不存在的最后也要返回相应的结果。既有数据库表又有List<string>列表,这样使用linq应该如何做到。

直接上代码:

<span style="font-size:14px;">var filtered = from c in db.Ctable
          <span style="color:#ff0000;"> where tntable.Contains(c.CarID)</span>
           select new 
           {
              CarID = c.CarID,
              Name =  c.OwnerName,
              Hours = c.Hours
           };

var line = <span style="color:#ff0000;">from x in tntable</span>
           join i in filtered.ToList() on x equals u.CarID into i_match
           from i in i_match.DefaultIfEmpty()
           select { x, i };</span>

其中的
<span style="font-size:18px;">tntable 是一个list<string> 列表 </span>

### 如何将 `List<string>` 的元素添加到 `List<List<string>>` 中 为了实现这一目标,可以创建一个新的 `List<List<string>>` 并迭代现有的 `List<string>` 将其每个元素作为一个新列表添加进去。下面是一个具体的例子: ```csharp using System; using System.Collections.Generic; class Program { static void Main() { // 原始字符串列表 List<string> originalStrings = new List<string>() {"hello", "world"}; // 创建一个嵌套的字符串列表 List<List<string>> nestedStringLists = new List<List<string>>(); foreach (var str in originalStrings) { // 每次都将当前字符串放入一个新的列表中再加入到外层列表里 nestedStringLists.Add(new List<string>() {str}); } // 打印结果验证操作成功与否 foreach (var list in nestedStringLists) { Console.WriteLine(String.Join(", ", list)); } } } ``` 如果希望把整个原始列表当作单一元素添加至外部列表,则只需简单地调用 `Add()` 方法即可[^1]。 对于上述提到的方法,在实际应用过程中可以根据具体需求调整逻辑结构;比如想要一次性复制所有项而不是逐个处理的话也可以考虑使用如下方式完成相同任务: ```csharp // 直接将原列表作为一项添加进入新的列表 nestedStringLists.Add(originalStrings); ``` 此外,还可以通过 LINQ 表达式简化此过程,利用 Select 来映射每一个单独项目形成的新列表并最终转换回列表形式: ```csharp // 使用LINQ表达式构建嵌套列表 var resultUsingLinq = originalStrings.Select(s => new List<string>{s}).ToList(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值