C# 如何使用特定大小的列表定义结构

C# 如何使用特定大小的列表定义结构,c#,list,.net-4.0,marshalling,C#,List,.net 4.0,Marshalling,看看下面的示例,TestPropSix是一个包含5个元素的数组。我如何封送该数组以设置内部字符串的常量特定长度?假设我希望数组中的每个字符串也只允许大小为100。我想我已经正确地编组了数组,只是数组中的字符串让我担心 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public struct TestStructTwo { public int TestPropOne; public int TestP

看看下面的示例,TestPropSix是一个包含5个元素的数组。我如何封送该数组以设置内部字符串的常量特定长度?假设我希望数组中的每个字符串也只允许大小为100。我想我已经正确地编组了数组,只是数组中的字符串让我担心

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct TestStructTwo
{
    public int TestPropOne;

    public int TestPropTwo;

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
    public string TestPropThree;

    public int TestPropFour;

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
    public string TestPropFive;

    //How do I set the STRING elements as having a limit of 100
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.ByValTStr)]
    public string[] TestPropSix;

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
    public string TestPropSeven;
}

你为什么不使用数组而不是列表?@LasseV.Karlsen告诉我你不是反对票。。。投反对票是为了回答糟糕的问题,到底是什么让我的问题变得“糟糕”呢?没有理由不能使用数组(尽管列表更容易使用)。如果需要的话,我可以使用数组,你能建议一个答案吗?谢谢