IEnumberable<String> To String
如何根据关键字在List<T>中查询出来相应的结果?
Code:
- Create List<T>
public class A {
public string a { get; set; }
public string b { get; set; }
}
List<A> aList = new List<A> {
new A{ a="6", b="AAA"},
new A{ a="2", b="BBB"}
};
- Search List<T>
//这样是有问题的,无法隐式从IEnumerable<String>转换String
String c = aList.Where ( o => o.a.Equals ( "6" ) )
.Select(o=>o.b);
//这样是没有问题的,但是返回值不对,是当前类型名
String c = aList.Where ( o => o.a.Equals ( "6" ) )
.Select(o=>o.b).ToString();
- 那如何解决?
使用FirstOrDefault()
String c = aList.Where ( o => o.a.Equals ( "6" ) )
.FirstOrDefault ().b;
OK了,但是好像有点问题,什么问题呢?
如果这个集合没有我查询的值,肯定会报错的。
String c = aList.Where ( o => o.a.Equals ( "1" ) )
.FirstOrDefault ().b;
- 那又如何解决呢?
有两种方案
- 编写自定义方法
String d = Get ( aList , "1" );
private string Get (List<A> aList , String whereStr) {
var es = aList.Where ( o => o.a.Equals ( whereStr ) ).FirstOrDefault ();
if ( es != null ) {
return es.b;
}
else {
return String.Empty;
}
}
或者
Func<List<A> , String , String> Get = (list , str) => {
var es = list.Where ( o => o.a.Equals ( str ) ).FirstOrDefault ();
if ( es != null ) {
return es.b;
}
else {
return String.Empty;
}
};
String ee = Get ( aList , "1" );
- 编写扩展方法
自行发挥!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架