SynchronizedCollection也是IEnumerable,因此可以用Linq:
被赋值 = list.FirstOrDefault(查找条件);
if (被赋值 != null)
{
    被赋值.要修改的值=值;
}

解决方案 »

  1.   

    我要把值修改进list中.并不是复制后修改.
      

  2.   

    就是如何编辑某元素的值?
    先 list.First(类型)
    intdex=list.IndexOf(类型)
    list[intdex].属性="值"??
    难道只能这样?
      

  3.   

    不通过索引来编辑你想怎么编辑?
    SynchronizedCollection<T> 怎么条件查索引? LIST还有个FindIndex根绝条件找出索引.
      

  4.   

    关键是你这里的T是如何定义的,看你的写法,T应该是类而不是结构体,那么复制出来再处理它的属性是没问题的,因为类的复制是引用传递,传的是地址,修改属性两处同时有效。如果T是结构体,那么你那种写法都是错误的,要直接list[intdex] = 新值
      

  5.   

    关键是你这里的T是如何定义的,看你的写法,T应该是类而不是结构体,那么复制出来再处理它的属性是没问题的,因为类的复制是引用传递,传的是地址,修改属性两处同时有效。如果T是结构体,那么你那种写法都是错误的,要直接list[intdex] = 新值
    T的值就是public class T
      

  6.   

    SynchronizedCollection 要是有一个FindIndex其实就解决了.
      

  7.   


    class是引用类型。
    ’被赋值‘的属性一旦被更改了,’list[索引]‘的属性也就被更改了。