C# 从对象列表中查找字符串属性中的特定字符
我需要根据特定属性(字符串类型)是否在位置19包含字符“S”(或“N”)来过滤对象列表 我把这个用C#表示:C# 从对象列表中查找字符串属性中的特定字符,c#,linq,C#,Linq,我需要根据特定属性(字符串类型)是否在位置19包含字符“S”(或“N”)来过滤对象列表 我把这个用C#表示: IQueryable lstTipoGasto=objServiceClient.ListaTabla5(int.Parse(number)).AsQueryable(); Tabla5 objTipoGasto=新Tabla5(); objTipoGasto.NombreNom5=“Seleccione..”; objTipoGasto.CodigoNom5=-1; objTipoGa
IQueryable lstTipoGasto=objServiceClient.ListaTabla5(int.Parse(number)).AsQueryable();
Tabla5 objTipoGasto=新Tabla5();
objTipoGasto.NombreNom5=“Seleccione..”;
objTipoGasto.CodigoNom5=-1;
objTipoGasto.TextNom5=“…”;
List lst=lstTipoGasto.ToList();
第一次增补(objTipoGasto);
lstTipoGasto=lst.AsQueryable();
var lista=lstTipoGasto.AsEnumerable().ToList()。其中(x=>x.AgregaTabl.Contains(“S”))
.选择(x=>new
{
x、 密码子5,
x、 NombreNom5,
x、 文本编号5,
x、 阿格雷塔布尔
}).OrderBy(x=>x.CodigoNom5.ToList();
uddlTipoGasto.DataSource=lista;
uddlTipoGasto.DisplayMember=“NombreNom5”;
uddlTipoGasto.ValueMember=“CodigoNom5”;
uddlTipoGasto.ValueMember=“TextNom5”;
我有个例外。知道为什么吗?试试
var lista = lstTipoGasto.AsEnumerable()
.ToList()
.Where(x => x.AgregaTabl.Length > 18 &&
(x.AgregaTabl[18] == 'S' || x.AgregaTabl[18] == 'N'))
.Select(x => new
{
x.CodigoNom5,
x.NombreNom5,
x.TextNom5,
x.AgregaTabl
}).OrderBy(x => x.CodigoNom5).ToList();
与其检查
x.AgregaTabl.是否包含(“S”)
,不如检查x.AgregaTabl.Length>18
,这样我们就知道它至少有19个字符,然后我们检查(x.AgregaTabl[18]='S'| | x.AgregaTabl[18]='N')
,看看第19个字符是'S'还是'N'(注:x.AgregaTabl[18]由于基于0的索引,访问第19个字符)。异常消息是什么?另外,您的代码现在没有检查位置19处的字符。您似乎没有检查位置19,您只是使用了Contains()
。例外情况是(西班牙语):referencea a objeto no establecida como instancia de un objeto。原始查询:var lista=lstTipoGasto.AsEnumerable().ToList()。其中(x=>x.AgregaTabl.Substring(18,1).Equals(“S”)).Select(x=>new{x.CodigoNom5,x.NombreNom5,x.TextNom5,x.AgregaTabl}).OrderBy(x=>x.CodigoNom5.ToList();
var lista = lstTipoGasto.AsEnumerable()
.ToList()
.Where(x => x.AgregaTabl.Length > 18 &&
(x.AgregaTabl[18] == 'S' || x.AgregaTabl[18] == 'N'))
.Select(x => new
{
x.CodigoNom5,
x.NombreNom5,
x.TextNom5,
x.AgregaTabl
}).OrderBy(x => x.CodigoNom5).ToList();