过滤列表< string>使用linq [英] Filter list<string> using linq

查看:73
本文介绍了过滤列表< string>使用linq的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想根据下面给出的条件筛选字符串列表,

Hi,
I want to filter string list based on some condition as given below,

List<string> config = new List<string>();
               config.Add("userdata.member1");
               config.Add("userdata.member2");
               config.Add("userdata.member3");
               config.Add("userdata.member4");
               config.Add("userdata.member5");
               config.Add("attribute.memberattribute1");
               config.Add("attribute.memberattribute2");
               config.Add("attribute.memberattribute3");
               config.Add("attribute.memberattribute4");
               config.Add("attribute.memberattribute5");

               string[] userDataKeys = config.Select(x => x.Contains("userdata.")?x.Replace("userdata.",""):x).ToArray();





我的尝试:



我想检查字符串是否有userdata。并用空字符串替换它最后只返回被替换的项目。



预期输出:

member1

member2

会员3

会员4

会员5



谁能告诉我如何实现它使用linq。



谢谢。



What I have tried:

I want to check whether the string has "userdata." and replace it with empty string finally return the replaced items only.

Expected output:
member1
member2
member3
member4
member5

can anyone tell me how to achieve it using linq.

Thanks.

推荐答案

你几乎就在那里。首先,您需要确定哪些记录包含 userdata。。 where子句有助于:
You're almost there. First you need to identify which records contain userdata.. A where clause helps here:
config.Where(x => x.StartsWith("userdata.")).Select(x => x.Replace("userdata.", string.Empty)).ToList();


试试

try
string[] userDataKeys = config.Where(x => x.Contains("userdata.")).Select(x => x.Replace("userdata.", "") ).ToArray();


无需使用 .StartWith .Contains 方法。简单的 .Replace 应该足够了:)



There's no need to use .StartWith or .Contains method. Simple .Replace should be enough :)

var result = config.Select(x=>x.Replace("userdata.", string.Empty)).ToList();





当然,如果您只想返回成员字的数据,您可以使用:



Of course, if you want to return only data with member word, you can use:

var result = config.Where(x=>x.Contains("member")).Select(x=>x.Replace("userdata.", string.Empty)).ToList();


这篇关于过滤列表&lt; string&gt;使用linq的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆