【发布时间】:2010-02-24 14:37:39
【问题描述】:
我希望能够编写扩展方法,这样我就可以说:
lines.ForceSpaceGroupsToBeTabs();
代替:
lines = lines.ForceSpaceGroupsToBeTabs();
但是,当前输出的代码如下:
....one
........two
代替:
Tone
TTtwo
我必须在以下代码中进行哪些更改才能使其输出:
Tone
TTtwo
(请注意,为了可见性,. = space, T = \t):
using System;
using System.Collections.Generic;
namespace TestExtended82343
{
class Program
{
static void Main(string[] args)
{
List<string> lines = new List<string>();
lines.Add("....one");
lines.Add("........two");
lines.ForceSpaceGroupsToBeTabs();
lines.ForEach(l => Console.WriteLine(l));
Console.ReadLine();
}
}
public static class Helpers
{
public static void ForceSpaceGroupsToBeTabs(this List<string> originalLines)
{
string spaceGroup = new String('.', 4);
List<string> lines = new List<string>();
foreach (var originalLine in originalLines)
{
lines.Add(originalLine.Replace(spaceGroup, "T"));
}
originalLines = lines;
}
}
}
【问题讨论】:
标签: c# generics object extension-methods