WPF中遍历Textbox中内容

shuai13869896140 2012-02-19 09:38:57
具体是这样的,一个窗体上有两个Textbox: textbox1 和 textbox2
我在textbox1中写N行东西,在textbox2中读出textbox1中数据的同时,每遇见一个回车就在此行数据前标一个数字,如下:
textbox1:
A
B
C
那么我希望textbox2中显示的内容是
1.A
2.B
3.C
还请高手告诉怎么实现, 谢谢```
...全文
410 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonocast 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 shuai13869896140 的回复:]
非常感谢, 抱歉的是之前已经结贴, 没法给你分 = =```
[/Quote]

分就是浮云。。。
Frederick 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 nonocast 的回复:]

为了不被bs,还是写一下
C# code

string result = string.Join(Environment.NewLine, sample.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select((p, i) => string.Format("{0}.……
[/Quote]

弱弱的问下, 怎么贴的代码? 我没找到设置```
shuai13869896140 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 nonocast 的回复:]

这里一下,
C# code

string result = string.Join(Environment.NewLine,
sample.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).
Select((p, i) => string.Format("{0}.{1}", i + 1……
[/Quote]
非常感谢, 抱歉的是之前已经结贴, 没法给你分 = =```
nonocast 2012-02-19
  • 打赏
  • 举报
回复
这里一下,

string result = string.Join(Environment.NewLine,
sample.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).
Select((p, i) => string.Format("{0}.{1}", i + 1, p)));
nonocast 2012-02-19
  • 打赏
  • 举报
回复
为了不被bs,还是写一下

string result = string.Join(Environment.NewLine, sample.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select((p, i) => string.Format("{0}.{1}", i + 1, p)));

真的很少这样用,没有这个意识
nonocast 2012-02-19
  • 打赏
  • 举报
回复

string sample = @"line1
line2
line3";
StringBuilder result = new StringBuilder();

int index = 1;
sample.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList().ForEach(p => {
result.AppendFormat("{0}. {1}{2}", index++, p, Environment.NewLine);
});

我很笨的,不会LINQ
sofant 2012-02-19
  • 打赏
  • 举报
回复
TextBox.LineCount 总行数
TextBox.GetGetLineText(int index) 获取指定索引的行的文本
shuai13869896140 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shuai13869896140 的回复:]

引用 6 楼 studyallthetime 的回复:

引用 3 楼 devmiao 的回复:

C# code
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).T……
[/Quote]
谢谢你,楼下帮忙解决了,貌似是这个问题
shuai13869896140 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sp1234 的回复:]

一个参数的Split其参数签名是char[],而使用string[]的就需两个参数,例如C# code
s.Split(new string[]{"\n"}, StringSplitOptions.None)
[/Quote]

谢谢你, 可以了```
  • 打赏
  • 举报
回复
如果只一个参数,那么写
s.Split('\n')
并且这其实是param char[],所以参数中的char可以写很多个。

另外你的问题中的textbox1.Text,估计没有\r,只有\n。
  • 打赏
  • 举报
回复
一个参数的Split其参数签名是char[],而使用string[]的就需两个参数,例如
s.Split(new string[]{"\n"}, StringSplitOptions.None)
shuai13869896140 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 devmiao 的回复:]

需要VS2010编译哦。2008得修改下。
[/Quote]
我的确是2010编译的...
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).ToString() + "." + value));

没错吧? 可是还是显示的是那个问题 = =
devmiao 2012-02-19
  • 打赏
  • 举报
回复
需要VS2010编译哦。2008得修改下。
shuai13869896140 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 studyallthetime 的回复:]

引用 3 楼 devmiao 的回复:

C# code
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).ToString() + "." + value));


……
[/Quote]
我看错误列表的提示应该是 new char[], 但如果是new char[]的话貌似又不能解决我的问题. 我正在调试看
Frederick 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]

一行简单的linq语句就就搞定了。如果这在我的团队中,我会批评你一点不懂linq的。
[/Quote]
貌似没看到大神的答案...
Frederick 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 devmiao 的回复:]

C# code
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).ToString() + "." + value));
[/Quote]

貌似我记得Spilt后便跟的应该是 new char[]?
Frederick 2012-02-19
  • 打赏
  • 举报
回复
同样学习```
shuai13869896140 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 devmiao 的回复:]

C# code
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).ToString() + "." + value));
[/Quote]

谢谢你的回复, 有点思路了, 不过貌似这个不行, 有两个错误
1.错误 1 与“string.Split(params char[])”最匹配的重载方法具有一些无效参数
2.错误 2 参数 1: 无法从“string[]”转换为“char[]"
devmiao 2012-02-19
  • 打赏
  • 举报
回复
string s = @"A
B
C
D";

string result = string.Join("\r\n", s.Split(new string[] { "\r\n" }).Select((value, index) => (index + 1).ToString() + "." + value));
  • 打赏
  • 举报
回复
一行简单的linq语句就就搞定了。如果这在我的团队中,我会批评你一点不懂linq的。
加载更多回复(1)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧