简体   繁体   English

如何在 C# 中使用 foreach 编写结构数组

[英]How to write array of struct with foreach in C#

In here I can't use foreach :在这里我不能使用foreach

`Error CS0030 Cannot convert type 'ConsoleApplication5._3.Struct.Sach' to 'int' `错误 CS0030 无法将类型“ConsoleApplication5._3.Struct.Sach”转换为“int”

How can I fix it?我该如何解决?

public struct Sach
{
    public string TenSach;
    public string TacGia;
    public string GioiThieu;
    public int ID;
    public void nhapdulieu(string q,string w, string e, int r)
    {
        TenSach = q;
        TacGia = w;
        GioiThieu = e;
        ID = r;
    }
    public void Insach()
    {
        Console.Write($"Ten sach: {TenSach}\n");
        Console.Write($"Tac gia: {TacGia}\n");
        Console.Write($"Gioi thieu: {GioiThieu}\n");
        Console.Write($"Ma sach: {ID}\n");
    }
};


public class QuanLySach
{
    public static void NhapSach()
    {

        Sach[] sach1 = new Sach[4];
        for(int i=0;i<4;i++)
        {
            Console.WriteLine("nhap ten sach, tac gia, gioi thieu, id:");
            sach1[i].TenSach = Console.ReadLine();
            sach1[i].TacGia = Console.ReadLine();
            sach1[i].GioiThieu = Console.ReadLine();
            var vv = Console.ReadLine();
            Int32.TryParse(vv, out sach1[i].ID);
        }

        foreach(int bb in sach1)
        {
         // in here i cant use foreach but i dont know why?
        }
        Console.ReadLine();
    }  
    }
}

You are using foreach incorrectly.您错误地使用了foreach Foreach loop will iterate trough sequence and your bb should be same type as base type for that sequence. Foreach 循环将迭代槽序列,您的bb应该与该序列的基本类型相同。 In your case it should be:在你的情况下,它应该是:

foreach(Sach bb in sach1)
{
     // in here i cant use foreach but i dont know why?
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM