我对我遇到问题的方面发表了评论,我不完全理解为什么必须[1]
,为什么不能[0]
,{{ 1}}等我知道[2]
会切换名字和姓氏的位置,但我不明白为什么。
这就是文本文件中的行。
强尼:笼
莎拉:约翰松
鲍勃:乔
[0]
答案 0 :(得分:4)
考虑文件Jonny:Cage
中的第一行。如果您将此文本提供给拆分方法,您将获得一个包含两个值Jonny
,Cage
的数组。在C#中,您使用基于0的索引对数组中的值进行求解,因此如果您使用0
,则Jonny
1
将访问Cage
,Cage
任何其他值都将导致错误因为该数组中只有两个项目。并且您希望姓氏为1
,这是数组中的第二项,因此您需要使用<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="700" Width="700">
<Canvas x:Name="canvas" Background="Transparent" MouseLeftButtonDown="Canvas_MouseLeftButtonDown">
<StackPanel x:Name="sp" Background="Yellow" Width="200" Height="200" Visibility="Hidden" />
</Canvas>
</Window>
private void Canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Point point = e.GetPosition(canvas);
Canvas.SetLeft(sp, point.X - sp.Width / 2);
Canvas.SetTop(sp, point.Y - sp.Height / 2);
sp.Visibility = Visibility.Visible;
}
。
答案 1 :(得分:0)
Split方法接受一个字符串,并在用分隔符分割时查找字符串的每个部分:
string s = "I am a sample string!I am the second part";
// Let's create an array
string[] parts = s.Split('!'); // We split s into parts seperated by a '!'
// parts looks like this: ["I am a sample string", "I am the second part"]
// The '!' is not part of it as it is the seperator.
// parts has the length of 2 -> two strings in an array of strings.
// Arrays have indexes of each element, starting with 0, not 1!
// So accessing the second element in parts is:
Console.WriteLine(parts[1]);
// Your frind just put the call of the second element right behind returning the array:
line.Split(':')[1]
// Split gives us the array and we take its second element -> the last name