List<string> str = new List<string>{"大","人","好"};要把str的"人"替换成"家",该如何写代码呢?谢谢

解决方案 »

  1.   

      
    //扩展方法
      static    IEnumerable<Tout> Each<T,Tout>(this IEnumerable<T> list,Func<T,Tout> func )
            {
                foreach (var item in list)
                {
                    yield return func(item);
                }
            }  
    //调用结果
    List<string> str = new List<string> { "大", "人", "好" };
      var res=str.Each(p=>p.Replace("人","家")).ToList();ps:其实你直接Array.ForEach效果一样
      

  2.   

    List<string> lststr = new List<string>() { "大", "人", "好" };
                for(int i =0;i <lststr.Count;i++)
                    lststr[i] = lststr[i].Replace("人", "家");
      

  3.   

    str=str.Select(t=>t.Replace("人","家")).ToList();
      

  4.   

    可不可以str[1] = "家"  呢?
      

  5.   

    可以。
    int n = str.Select((x, i) => new { x, i }).First(x => x.x == "人").i;
    str[n] = "家";
      

  6.   

    呵呵,可以循环处理str.Select((s, index) => s == "人" ? index : -1)
        .Where(i => i != -1)
        .ToList()
        .ForEach(i => str[i] = "家");
      

  7.   

    当然是写一个 for(var i=0; i<str.Count; i++) 也很足够了。
      

  8.   


    因为你说的不明确。既然是替换第二个元素,你就说替换第二个元素好了,干嘛说把"人"替换成"家"呢?这不管“人”什么事嘛。
    str[1] = "家"; 
      

  9.   

    呵呵,你知道人在第二元素,计算机不知道啊。不循环计算机咋就知道人在第二个元素上呢?计算机死脑筋滴,除非你直接告诉他 我要替换第二个元素 str[1]="家",不然他就只能循环遍历判定其实你这样问就好比问,从1加到100,为啥子俺们要循环或者套通项公式,而不直接写int i=5050
    我的说你都知道i等于5050了,那还问啥呢?