C#如何在文本文件中获取多个元素

C#如何在文本文件中获取多个元素,c#,for-loop,get,readlines,C#,For Loop,Get,Readlines,这里是我想要使用的文件数据,我对python比较熟悉,但我在这里找不到我需要的解决方案。谢谢你的帮助。 价格: 有的卖“一件东西”,价格是20英镑 有些卖“2号东西”,价格是40英镑 有的卖“三件东西”,价格是60英镑 有些卖“四件东西”,价格是80英镑 有些卖“5件东西”,价格是100英镑 using System; using System.IO; namespace CalcPrices { internal class Program { privat

这里是我想要使用的文件数据,我对python比较熟悉,但我在这里找不到我需要的解决方案。谢谢你的帮助。

价格:

有的卖“一件东西”,价格是20英镑
有些卖“2号东西”,价格是40英镑
有的卖“三件东西”,价格是60英镑
有些卖“四件东西”,价格是80英镑
有些卖“5件东西”,价格是100英镑

using System;
using System.IO;

namespace CalcPrices
{
    internal class Program
    {
        private static void Main()
        {
            string[] lines = File.ReadAllLines(
                @"C:\Users\Eggii\Desktop\code\c# katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt");

            for (int i = 0; i < lines.Length; i++)
            {
                string[] line = lines[i].Split();

                for (int j = 0; j < line.Length; j++)
                {
                    Console.WriteLine(line[6]);


                    // Output should be something like:
                    // 20
                    // 40
                    // 60
                    // 80
                    // 100
                    // because I want every 7th element in line 
                }
            }
        }   
    }
}
使用系统;
使用System.IO;
名称空间计算
{
内部课程计划
{
私有静态void Main()
{
string[]lines=File.ReadAllLines(
@“C:\Users\Eggii\Desktop\code\C#katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt”);
对于(int i=0;i
更改此选项:

string[] line = lines[i].Split();
为此:

string[] line = lines[i].Split(' ');

这样做将使用空格分隔符分割字符串。

您需要按空格分割行并删除内部循环:

using System;
using System.IO;

namespace CalcPrices
{
    internal class Program
    {
        private static void Main()
        {
            string[] lines = File.ReadAllLines(
                @"C:\Users\Eggii\Desktop\code\c# katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt");

            for (int i = 0; i < lines.Length; i++)
            {
                string[] line = lines[i].Split(' ');
                Console.WriteLine(line[6]);
            }
        }
    }
}
使用系统;
使用System.IO;
名称空间计算
{
内部课程计划
{
私有静态void Main()
{
string[]lines=File.ReadAllLines(
@“C:\Users\Eggii\Desktop\code\C#katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt”);
对于(int i=0;i
如果要将所有数据读入一行,则需要更改代码:

    ...
    internal class Program
    {
        private static void Main()
        {
            string line = File.ReadAllText(
                @"C:\Users\Eggii\Desktop\code\c# katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt");

            string[] splitLines = line.Split(' ');
            for (int j = 6; j < line.Length; j += 8)
            {
                Console.WriteLine(line[j]);
            }
        }
    }
。。。
内部课程计划
{
私有静态void Main()
{
字符串行=File.ReadAllText(
@“C:\Users\Eggii\Desktop\code\C#katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt”);
string[]splitLines=line.Split(“”);
对于(int j=6;j
这是您需要做的:

string[] lines = File.ReadAllLines(@"C:\Users\Eggii\Desktop\code\c# katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt");
foreach(string line in lines)
{
    Console.WriteLine(line.Split(new[] { "price is " }, StringSplitOptions.None)[1].Replace(" £", ""));
}

所以我补充了一些我的结论,也许这对某人有帮助。标题“prices:”位于文本顶部时出现问题,这是因为该字符串对于循环
来说太短(indexoutfrange)。因此,在本例中,我自己更正的代码可以正常工作

using System;
using System.IO;

namespace CalcPrices
{
    internal class Program
    {
        private static void Main()
        {
            string[] lines = File.ReadAllLines(
                @"C:\Users\Eggii\Desktop\code\c# katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt");

            for (int i = 0; i < lines.Length; i++)
            {
                string[] line = lines[i].Split();

                for (int j = 6; j < line.Length-1; j++)
                {
                    Console.WriteLine(line[j]);
                }
            }
        }
    }
}
使用系统;
使用System.IO;
名称空间计算
{
内部课程计划
{
私有静态void Main()
{
string[]lines=File.ReadAllLines(
@“C:\Users\Eggii\Desktop\code\C#katse\GoodsPrices\GoodsPrices\bin\Debug\PriceOfSoldGoods.txt”);
对于(int i=0;i
只需尝试按空格分割即可。这看起来像是
string[]line=lines[i].Split(“”)
intj=6帮助了我,所以我不得不将秒改为循环,
改为(intj=6;line.Length-1>j;j++){Console.WriteLine(line[j]);}
但在这种情况下,不管是.Split还是.Split(“”),因为它们都只删除单词之间的空格@Eggii是的,在这两种情况下,它将删除单词之间由空格分隔的部分。因此,您可以使用表示价格价值的单词:
20,40…