C# 使用linq编辑列表中的项目

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

我有一个通用列表

已经满了

它的名字是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");

//code edit item (Shekhar3) -------> Shekhar88 //code to edit the item...?????
输出:

Shekhar1

Shekhar2

Shekhar88

Shekhar4

Shekhar5
Pro
Pro
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非索引项