C#列表的链接元素

C#列表的链接元素,c#,C#,我正在考虑一种方法来创建字符串列表的链接或引用。我的情况是,我正在创建ARP表,我需要保存捕获响应消息的接口的IP(作为字符串)。接口的IP地址保存在列表中 我不想做的是分配本地\u inter-smt-like list.ElementAt(0),因为当我更改接口上的IP地址时(列表更新为新的),条目中的值不会更改-并且我必须为每个条目执行foreach(不错,但是…) 相反,我正在寻找解决方案,这将“链接”将特定的列表元素设置为local_inter参数-因此在列表中更改IP将导致自动更新包

我正在考虑一种方法来创建字符串列表的链接或引用。我的情况是,我正在创建ARP表,我需要保存捕获响应消息的接口的IP(作为字符串)。接口的IP地址保存在列表

我不想做的是分配本地\u inter-smt-like list.ElementAt(0),因为当我更改接口上的IP地址时(列表更新为新的),条目中的值不会更改-并且我必须为每个条目执行foreach(不错,但是…)


相反,我正在寻找解决方案,这将“链接”将特定的列表元素设置为local_inter参数-因此在列表中更改IP将导致自动更新包含旧条目的每个条目。

如果您可以控制
ARP_Table_条目的代码
,只需创建从神秘列表返回值的
local_inter
属性即可:

class ARP_Table_entry
{
   List<string> mysteriousList;
   int pos; 
   public ARP_Table_entry(List<string> mysteriousList, int pos,...)
   {
      this.mysteriousList = mysteriousList;
      this.pos = pos;
      ...
   }

    // TODO: add null check/position verification as needed
    string local_inter => mysteriousList[pos];
     // or {get { return mysteriousList[pos];} for C# 5 and below
    ...
请注意,这两种方法都不会保护您不将列表全部替换为
originalysteriouslist=new list()


另一种选择是使用更复杂的类型来存储IP列表,这些IP列表将通知其更改(类似于
ObesrvableCollection
),并在集合中更改时更新字段。

基本上,您希望将列表中的一个元素绑定到您的
本地\u inter
?是的,这就是想法。
class ARP_Table_entry
{
   List<string> mysteriousList;
   int pos; 
   public ARP_Table_entry(List<string> mysteriousList, int pos,...)
   {
      this.mysteriousList = mysteriousList;
      this.pos = pos;
      ...
   }

    // TODO: add null check/position verification as needed
    string local_inter => mysteriousList[pos];
     // or {get { return mysteriousList[pos];} for C# 5 and below
    ...
class ARP_Table_entry
{
    public Func<string> local_inter;
    ...

    public ARP_Table_entry(List<string> mysteriousList, int pos,...)
    {
      local_inter = () => mysteriousList[pos];
      ...
    }