C# 从txt文件中的行中读取,如果框是一部分,则变量等于第二部分

C# 从txt文件中的行中读取,如果框是一部分,则变量等于第二部分,c#,.net,visual-studio-2012,C#,.net,Visual Studio 2012,我需要根据文本文件中的内容设置一个变量 文本文件的设置如下所示: AK_47_M,30Rnd_762x39_AK47 AK_47_S,30Rnd_762x39_AK47 AKS_74_Kobra,30Rnd_545x39_AK bizon_silenced,64Rnd_9x19_SD_Bizon M1014,8Rnd_B_Beneli_74Slug M16A2,30Rnd_556x45_Stanag 等等。。。 你会注意到第一部分是武器类名称,第二部分是弹药类型的类名 我的表单上有一个名为bo

我需要根据文本文件中的内容设置一个变量

文本文件的设置如下所示:

AK_47_M,30Rnd_762x39_AK47
AK_47_S,30Rnd_762x39_AK47
AKS_74_Kobra,30Rnd_545x39_AK
bizon_silenced,64Rnd_9x19_SD_Bizon
M1014,8Rnd_B_Beneli_74Slug
M16A2,30Rnd_556x45_Stanag
等等。。。 你会注意到第一部分是武器类名称,第二部分是弹药类型的类名

我的表单上有一个名为box_-wearm的组合框,它从同一个文本文件中读取,并通过运行以下代码生成一个包含行的所有前半部分的数组:

string[] weaponsArray = File.ReadAllLines("weapons.txt");
            foreach (var line in weaponsArray)
            {
                string[] tokens = line.Split(',');
                box_pw.Items.Add(tokens[0]);
            }
总而言之。 我需要某种“如果盒子武器=线位置1;弹药类型=线位置2”

试试这个

StreamReader reader = File.OpenText(@"C:\weapons.txt");
while (!reader.EndOfStream)
{
    string currentLine = reader.ReadLine();
    string[] words = currentLine .Split(",");
    if (this.box_weapon.SelectedItem.ToString()  == words[0])
    {
     ammoType = words[1];
    }

}
公共级武器
{
公共字符串AK_47_M;
公共字符串AKU 47_S;
公共字符串AKS_74_Kobra;
公共字符串bizon_沉默;
公共字符串M1014;
公共字符串M16A2;
}
武器=(新的JavascriptSerializer())
.反序列化(“{”+
String.Join(“,”,File.ReadAllLines(“warms.txt”)
.选择(x=>x.Replace(“,”,“:”))
.ToArray())+
"}" );
字符串AK=武器Sobj.AK_47_M;

不要将
字符串添加到组合框中。添加一个“武器”


史诗般的胜利。谢谢sajanyamaha!:)
public class Weapons
{
    public string AK_47_M;
    public string AK_47_S;
    public string AKS_74_Kobra;
    public string bizon_silenced;
    public string M1014;
    public string M16A2;
}

Weapons weapons = (new JavascriptSerializer())
    .Deserialize<Weapons>( "{" + 
         String.Join(",", File.ReadAllLines("weapons.txt")
                              .Select(x => x.Replace(",",":"))
                              .ToArray()) + 
    "}" );

String AK = weaponsObj.AK_47_M;
Public Class Form1

Private Weapons As New List(Of Weapon)

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    With Weapons
        .Add(New Weapon("M16", ".223"))
        .Add(New Weapon("AK74", "7.62"))
        .Add(New Weapon("Catapult", "Pumpkin"))
    End With
    Me.ComboBox1.DataSource = Weapons
End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.SelectedItem IsNot Nothing Then
        Dim w As Weapon = DirectCast(ComboBox1.SelectedItem, Weapon)
        Debug.Print("A {0} needs some {1} to be effective!", w.Name, w.Ammo)
    End If
End Sub
End Class

Public Class Weapon

Public Name As String
Public Ammo As String

Public Sub New(Name As String, Ammo As String)
    Me.Name = Name
    Me.Ammo = Ammo
End Sub

Public Overrides Function ToString() As String
    Return Me.Name
End Function

End Class