编辑列表中的项目与林克

发布于 2024-10-16 06:11:13 字数 751 浏览 1 评论 0原文

我有一个通用清单。

它已经满了。

它的名字是list1。

我们想要使用 LINQ 来编辑其项目。

输入------> textbox1.text(列表1中的键)

class11中的键--------> string _number

代码是什么 编辑?

更新

这是我想要的:

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

用于编辑(更新)通用列表中的项目:

1- 使用 linq 到通用列表进行搜索 ------>输出索引项

2- lst.RemoveAt(index)

3- lst.Insert(index, new obj);

好的....!!? 请给我代码 linq。 (情况1)

谢谢

I have a generic list.

It is full.

its name is list1.

We want to use LINQ, to edit its Items.

intput ------> textbox1.text (Key in the list1)

key in class11--------> string _number

What is the code Edit?

Update

Here is what i want:

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...?????

Output:

Shekhar1

Shekhar2

Shekhar88

Shekhar4

Shekhar5

for edit (update) the item in generic list:

1- Search with linq to generic list -------> output index item

2- lst.RemoveAt(index)

3- lst.Insert(index, new obj);

ok....!!?
please give me code linq. (case 1)

thanx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

£冰雨忧蓝° 2024-10-23 06:11:13

好吧,我不知道你想要什么,但我认为你想通过使用 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();

输出:

Pro
Pro
Pro
Pro
Pro

更新

好的,根据您的建议,这里是可以工作的代码

string search_string = "Shekhar3";
string replacement_string = "Shekhar88";
lst = (lst.Select( item => {
                          if(item == search_string) return item = replacement_string;
                          else return item;
                              })).ToList();

Well i dont know what you want here but what i think is you want to edit the item in List by using LINQ with some other data may be in a text box.

Anyway Here is an Example to give you an Idea on how o get started: (Run on 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();

Output:

Pro
Pro
Pro
Pro
Pro

Update

Ok based on your suggestions here is the code that will work

string search_string = "Shekhar3";
string replacement_string = "Shekhar88";
lst = (lst.Select( item => {
                          if(item == search_string) return item = replacement_string;
                          else return item;
                              })).ToList();
柠栀 2024-10-23 06:11:13

我想您可能的意思是您想根据用户输入的内容编辑列表中的项目? 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;

然后您可以直接编辑所需的项目:

item.Value = newValue;

或者通过迭代:

foreach(MyType i in items)
{
    i.Value = newValue;
}

您可以在不使用 LINQ 的情况下通过简单地使用 lambda 表达式调用 .Where() 函数来实现相同的效果, 例如:

List<MyType> items = myList.Where(i => i.Key == key);

I think you might mean that you want to edit an item in the list, based on what the user types in? IE: Filter the list of objects based on some predicate?

If this is the case, you could do it with linq like so:

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;

You can then edit the items you want either directly:

item.Value = newValue;

Or by iterating:

foreach(MyType i in items)
{
    i.Value = newValue;
}

You can achieve the same without LINQ by simply calling the .Where() function with a lambda expression, for example:

List<MyType> items = myList.Where(i => i.Key == key);
浪漫之都 2024-10-23 06:11:13

您可以使用 Linq 选择新列表,但不能修改现有列表。原因是 Linq 处理枚举而不是内部列表。处理列表的相同代码也可以处理数组或返回可枚举值和yield 值的函数。以下是如何使用 Select() (ideone) 替换项目:

List<string> list = (new string[] { 
    "Shekhar1", "Shekhar2", "Shekhar3", "Shekhar4", "Shekhar5" }
).ToList();

string match = "Shekhar3";
string replace = "Shekhar88";
List<string> newList = list.Select(x => x == match ? replace : x).ToList();
list = newList;
foreach (string value in list) {
    Console.WriteLine("{0}", value);
}

You can use Linq to select into a new list, but not modify an existing list. The reason is that Linq deals with enumerables and not lists internally. The same code that works with lists could work with arrays or with a function that returns an enumerable and yields values. Here's how to replace an item using Select() (ideone):

List<string> list = (new string[] { 
    "Shekhar1", "Shekhar2", "Shekhar3", "Shekhar4", "Shekhar5" }
).ToList();

string match = "Shekhar3";
string replace = "Shekhar88";
List<string> newList = list.Select(x => x == match ? replace : x).ToList();
list = newList;
foreach (string value in list) {
    Console.WriteLine("{0}", value);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文