C# 通过“获取基于指定值的列表中的项目”=&引用;性格

C# 通过“获取基于指定值的列表中的项目”=&引用;性格,c#,.net,string,list,C#,.net,String,List,我有一个存储的值列表,我在其中添加了一个等号作为“生产”和“测试”,如下所示 List<string> data = new List<string>(); data.Add("app01=production"); data.Add("app02 = test"); data.Add("app03 = production"); 列表数据=新列表(); 添加数据(“app01=生产”); 添加数

我有一个存储的值列表,我在其中添加了一个等号作为“生产”和“测试”,如下所示

List<string> data = new List<string>();

            data.Add("app01=production");
            data.Add("app02 = test");
            data.Add("app03 = production");
列表数据=新列表();
添加数据(“app01=生产”);
添加数据(“app02=测试”);
添加数据(“app03=生产”);
使用这个列表,我想提取等于“production”的值。现在使用string.contains方法可以很容易地做到这一点,但我实际上只想存储第一部分,例如,我只想将值“app01”和“app02”存储在单独的列表中,而不是“app01=production”和“app03=production”

对如何进行有什么建议吗

这是到目前为止我的代码

static void Main(string[] args)
        {
            List<string> data = new List<string>();

            data.Add("app01=production");
            data.Add("app02 = test");
            data.Add("app03 = production");

            List<string> production = new List<string>();


            foreach (var item in data)
            {
                if (item.Contains("production"))
                {
                    production.Add(item); 
                }
            }


        }
static void Main(字符串[]args)
{
列表数据=新列表();
添加数据(“app01=生产”);
添加数据(“app02=测试”);
添加数据(“app03=生产”);
列表生产=新列表();
foreach(数据中的var项)
{
如果(项目包含(“生产”))
{
生产。添加(项目);
}
}
}

您可以
拆分
=
字符上的每个字符串,检查拆分的第二部分是否包含
“生产”
,如果包含,则使用一些
系统选择第一部分(进入
列表中)。Linq

List<string> production = data.Select(item => item.Split('='))
    .Where(part => part.Length > 1 &&
                   part[1].Contains("production"))
    .Select(part => part[0].Trim())
    .ToList();


如果出于某种原因不想使用Linq,可以使用循环找到等号并将等号后的项的值与
“production”
进行比较,如果匹配,则将字符串的第一部分返回到等号(用于删除任何前导或尾随空格):

List production=newlist();
foreach(数据中的var项)
{
var equalsIndex=item.IndexOf(“=”);
if(equalsIndex>0&&item.Substring(equalsIndex.Contains)(“生产”))
{
production.Add(item.Substring(0,equalindex.Trim());
}
}

您可以
拆分
=
字符上的每个字符串,检查拆分的第二部分是否包含
“生产”
,如果包含,则使用一些
系统选择第一部分(进入
列表中)。Linq

List<string> production = data.Select(item => item.Split('='))
    .Where(part => part.Length > 1 &&
                   part[1].Contains("production"))
    .Select(part => part[0].Trim())
    .ToList();


如果出于某种原因不想使用Linq,可以使用循环找到等号并将等号后的项的值与
“production”
进行比较,如果匹配,则将字符串的第一部分返回到等号(用于删除任何前导或尾随空格):

List production=newlist();
foreach(数据中的var项)
{
var equalsIndex=item.IndexOf(“=”);
if(equalsIndex>0&&item.Substring(equalsIndex.Contains)(“生产”))
{
production.Add(item.Substring(0,equalindex.Trim());
}
}
List<string> production = new List<string>();

foreach (var item in data)
{
    var equalsIndex = item.IndexOf("=");

    if (equalsIndex > 0 && item.Substring(equalsIndex).Contains("production"))
    {
        production.Add(item.Substring(0, equalsIndex).Trim());
    }
}