让我们列出你发布优秀和最喜欢的扩展方法的答案.
要求是必须发布完整代码并提供示例和如何使用它的说明.
基于对该主题的高度关注,我在Codeplex上设置了一个名为extensionoverflow的开源项目.
请标记您的答案并接受将代码放入Codeplex项目中.
请发布完整的源代码而不是链接.
Codeplex新闻:
24.08.2010 Codeplex页面现在在这里:http://extensionoverflow.codeplex.com/
11.11.2008 XmlSerialize/XmlDeserialize现在已实现并且已经过单元测试.
11.11.2008仍有更多开发人员的空间.;-) 现在加入!
11.11.2008第三个贡献者加入了ExtensionOverflow,欢迎来到BKristensen
11.11.2008 FormatWith现在已实现且已经过单元测试.
09.11.2008第二个贡献者加入了ExtensionOverflow.欢迎来到chakrit.
09.11.2008我们需要更多开发人员.;-)
我有一个简单的应用程序,可以反转在另一个文本框中键入的任何文本.问题是,您可以修改任一文本框,更改将(字面上)反映在另一个文本框中.
我写了这段代码,相信它会引起问题.
private void realText_TextChanged(object sender, EventArgs e)
{
mirrorText.Text = mirror(realText.Text);
}
private void mirrorText_TextChanged(object sender, EventArgs e)
{
realText.Text = mirror(mirrorText.Text);
}
private string mirror(string text)
{
return new string(text.Reverse().ToArray()).Replace("\n\r", "\r\n");
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试了它,相信它会导致无限循环(realText
变化mirrorText
,另一个事件发生,mirrorText
变化realText
等).但是,除了预期的行为之外什么也没发生
我当然对此感到高兴,我可以把它放在这里.或者我可以吗?
我很确定TextChanged
每当Text
发生变化时都会被触发.这是事件中某些错误保护的预期行为,还是我很幸运?这个代码在另一台计算机,其他构建设置等上是否会出错?它可以很容易地修复:
private void realText_TextChanged(object sender, EventArgs e)
{
if (realText.Focused)
{
mirrorText.Text = Mirror(realText.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
我可能会这样做是为了安全,但需要检查一下吗?(我甚至不会问是否推荐它.)
所以我看到了Jon的双向飞碟视频,并且有一个代码示例:
应该有一个问题é
- 在倒车之后但是我猜它在.net2(恕我直言)上失败了,无论如何它确实对我有效并且我确实看到了正确的反转字符串.
char[] a="Les Misérables".ToCharArray();
Array.Reverse(a);
string n= new string(a);
Console.WriteLine (n); //selbarésiM seL
Run Code Online (Sandbox Code Playgroud)
但我进一步说:
在希伯来语中有"Alef"字符: ?
我可以添加标点符号:( ??
我相信它包含2个字符 - 但显示为一个.)
但现在看看会发生什么:
char[] a="Les Mis??rables".ToCharArray();
Array.Reverse(a);
string n= new string(a);
Console.WriteLine (n); //selbar??siM seL
Run Code Online (Sandbox Code Playgroud)
分裂......
我能理解为什么会这样:
Console.WriteLine ("??".Length); //2
Run Code Online (Sandbox Code Playgroud)
所以我想知道在C#中是否存在针对此类问题的解决方法(或者我应该构建自己的机制......)
我没有遇到问题 - 我试图做一个简单的动作:
for(i = x.Length-1, j = 0 ; i >= 0 ; i--, j++)
{
backx[j] = x[i];
}
Run Code Online (Sandbox Code Playgroud)
两者都宣布:
String x;
String backx;
Run Code Online (Sandbox Code Playgroud)
问题是什么 ?它说标题中的错误......如果有问题 - 还有另一种方法吗?结果(名称为'backx'提示)是backx将向后包含字符串X. PS x不为空 - 它包含来自另一个字符串的子字符串.
我发现这个代码使用or运算符来反转字符串,
public static string ReverseXor(string s)
{
if (s == null) return null;
char[] charArray = s.ToCharArray();
int len = s.Length - 1;
for (int i = 0; i < len; i++, len--)
{
charArray[i] ^= charArray[len];
charArray[len] ^= charArray[i];
charArray[i] ^= charArray[len]; }
//some more code
}
Run Code Online (Sandbox Code Playgroud)
问题是我对for循环中发生的事情不了解,有人可以向我解释一下吗?
谢谢.
我有一个字符串可以说,
string temp1 = "25 10 2012"
Run Code Online (Sandbox Code Playgroud)
但我想要这个,
"2012 10 25"
Run Code Online (Sandbox Code Playgroud)
什么是最好的方式.格式永远都是这样的.
我有一个字符串,我想以某种方式修改.例如:将其反转或将其翻转.
我发现最快的方法是使用不安全的块和指针.
例如:
unsafe
{
fixed (char* str = text)
{
*str = 'X';
}
}
Run Code Online (Sandbox Code Playgroud)
有什么理由我永远不应该这样做吗?
我有一个像List的字符串
List<string> MyList = new List<string>
{
"A-B",
"B-A",
"C-D",
"C-E",
"D-C",
"D-E",
"E-C",
"E-D",
"F-G",
"G-F"
};
Run Code Online (Sandbox Code Playgroud)
我需要从列表中删除重复,即,如果存在"AB"和"BA",那么我只需要保留"AB"(第一个条目)
所以结果就像
"A-B"
"C-D"
"C-E"
"D-E"
"F-G"
Run Code Online (Sandbox Code Playgroud)
有没有办法用LINQ做到这一点?
我正在尝试使用正则表达式将像"朝鲜"这样的字符串转换为像"northKorea"这样的字符串 - 有人知道如何在c#中实现这一点吗?
干杯
如你所见,我使用arr [0]和arr.last()的起始索引; 但任何人都可以建议另一种方式来做同样的事情更简单?
public static string F(string s)
{
char[] arr = s.ToCharArray();
Array.Reverse(arr);
if (s.Length >= 2)
return new string(arr)[0] + "" + arr.Last();
else
return s;
}
Run Code Online (Sandbox Code Playgroud)