C# 使用linq编辑列表中的项目
我有一个通用列表 已经满了 它的名字是list1 我们想使用LINQ来编辑它的项目 intput-->textbox1.text列表中的键1 输入class11-->string\u编号 什么是代码编辑 更新 以下是我想要的:C# 使用linq编辑列表中的项目,c#,linq,generic-list,C#,Linq,Generic List,我有一个通用列表 已经满了 它的名字是list1 我们想使用LINQ来编辑它的项目 intput-->textbox1.text列表中的键1 输入class11-->string\u编号 什么是代码编辑 更新 以下是我想要的: List lst= new List(); lst.Add("Shekhar1"); lst.Add("Shekhar2"); lst.Add("Shekhar3"); lst.Add("Shekhar4"); lst.Add("Shekhar5"); //c
List lst= new List();
lst.Add("Shekhar1");
lst.Add("Shekhar2");
lst.Add("Shekhar3");
lst.Add("Shekhar4");
lst.Add("Shekhar5");
//code edit item (Shekhar3) -------> Shekhar88 //code to edit the item...?????
输出:
Shekhar1
Shekhar2
Shekhar88
Shekhar4
Shekhar5
ProPro
Pro
Pro
Pro
要编辑或更新常规列表中的项目,请执行以下操作: 1-使用linq搜索到通用列表-->输出索引项 2-lst.RemoveAtindex 3-第一个插入索引,新obj 好的。。。。!!? 请给我linq代码。案例1
thanx我不知道您在这里想要什么,但我认为您想要通过使用LINQ编辑列表中的项目,以及文本框中的一些其他数据 无论如何,这里有一个例子可以让您了解如何开始:在LINQPAD上运行
List<string> lst= new List<string>();
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
var edited = (from item in lst
select (item = "Pro")).ToList();
lst = edited;
lst.Dump();
我不知道你想在这里做什么,但我认为你想用LINQ编辑列表中的项目,其他数据可能在文本框中 无论如何,这里有一个例子可以让您了解如何开始:在LINQPAD上运行
List<string> lst= new List<string>();
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
lst.Add("Shekhar");
var edited = (from item in lst
select (item = "Pro")).ToList();
lst = edited;
lst.Dump();
我想你可能是说你想根据用户输入的内容编辑列表中的一个项目?IE:根据某个谓词过滤对象列表 如果是这种情况,您可以使用linq这样做:
List<MyType> myList = PopulateList();
string key = textBox1.Text;
string newValue = "new value";
// If you only want a single item...
MyType item = (from item in myList
where item.Key == key
select key).FirstOrDefault();
// If you want a list of matching items
List<MyType> items = from item in myList
where item.Key == key
select key;
或者通过迭代:
foreach(MyType i in items)
{
i.Value = newValue;
}
不使用LINQ,只需使用lambda表达式调用.Where函数即可实现相同的功能,例如:
List<MyType> items = myList.Where(i => i.Key == key);
我想你可能是说你想根据用户输入的内容编辑列表中的一个项目?IE:根据某个谓词过滤对象列表 如果是这种情况,您可以使用linq这样做:
List<MyType> myList = PopulateList();
string key = textBox1.Text;
string newValue = "new value";
// If you only want a single item...
MyType item = (from item in myList
where item.Key == key
select key).FirstOrDefault();
// If you want a list of matching items
List<MyType> items = from item in myList
where item.Key == key
select key;
或者通过迭代:
foreach(MyType i in items)
{
i.Value = newValue;
}
不使用LINQ,只需使用lambda表达式调用.Where函数即可实现相同的功能,例如:
List<MyType> items = myList.Where(i => i.Key == key);
可以使用Linq选择新列表,但不能修改现有列表。原因是Linq处理可枚举项,而不是内部列表。用于列表的代码可以用于数组,也可以用于返回可枚举值并生成值的函数。以下是如何使用“选择”替换项目:
可以使用Linq选择新列表,但不能修改现有列表。原因是Linq处理可枚举项,而不是内部列表。用于列表的代码可以用于数组,也可以用于返回可枚举值并生成值的函数。以下是如何使用“选择”替换项目:
请稍微更正一下你的问题,我无法在这里解释这个问题。我想用linqok编辑列表中的项目,我已经给出了答案。。这就是你想要的…为什么使用LINQ?lst[lst.IndexOfShekhar3]=Shekhar88;。请注意,您需要检查项目是否存在。可以写一个完美的例子。请稍微更正一下你的问题,我无法在这里解释这个问题。我想用linqok编辑列表中的项目,我已经给出了答案。。这就是你想要的…为什么使用LINQ?lst[lst.IndexOfShekhar3]=Shekhar88;。请注意,您需要检查项目是否存在。可以写一个完美的例子。thanx可以缩短为:lst.Selectitem=>item=Pro+1是的,我知道。。只是没有那样做。。。塔克斯suggestion@HuBeZa对于您的代码,我们仍然需要将其转换为列表,因为查询使其成为IEnumerable列表。。正如我在更新中所显示的,请用down case回答。thanxoh好的回答是。。你应该在你的问题中更新它…可以缩短为:lst.Selectitem=>item=Pro+1是的,我知道。。只是没有那样做。。。塔克斯suggestion@HuBeZa对于您的代码,我们仍然需要将其转换为列表,因为查询使其成为IEnumerable列表。。正如我在更新中所显示的,请用down case回答。thanxoh好的回答是。。你应该在你的问题中更新这个…我应该用这个方法。列表1.Removeitem和列表1.Insertindex;索引为int。@mah_85:取决于您实际在做什么。如果只是从一个小列表中删除和添加一个字符串,那么这两种方法都一样好。如果您有非常大的列表,或更复杂的对象列表,那么就地更新肯定更容易,也可能更快。请用小写字母回答。thanxoutput in it cod not index item我应该使用这个方法。列表1.Removeitem和列表1.Insertindex;索引为int。@mah_85:取决于您实际在做什么。如果只是从一个小列表中删除和添加一个字符串,那么这两种方法都一样好。如果您有非常大的列表,或更复杂的对象列表,那么就地更新肯定更容易,也可能更快。请用小写字母回答。thanxoutput in it cod非索引项