首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中怎么对List中的List进行赋值操作

2012-07-28 
C#中如何对List中的List进行赋值操作using Systemusing System.Collections.Genericusing System.Linqu

C#中如何对List中的List进行赋值操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Text.RegularExpressions;
//using System

namespace CNC
{  
   
   
  //class GMGemerate_List
  //{
  // static DataInfoList[] GMGenerate_List_Info;
  //}
   
  class GMGenerate
  {
  public struct AxisABS
  {
  public double x;//坐标x
  public double y;//坐标y
  public double z;//坐标z
  public double a;//?
  }
  public struct GCode
  {
  public int GCodeID;//G代码ID
  public double GCodePar1;//G代码第一部分
  public double GCodePar2;//G代码第二部分
  public int GCodeParType;//G代码类型
  }
  public struct MCode
  {
  public int MCodeID;//M代码ID
  public double MCodePar1;//M代码第一部分
  public double MCodePar2;//M代码第二部分
  public int MCodeParType;//M代码类型
  }
  public struct PSCode
  {
  public int PSCodeID;//代码ID
  public double PSCodePar1;//代码第一部分
  public double PSCodePar2;//代码第二部分
  public int PSCodeParType;//代码类型
  public string name;
  }

  public struct DataInfoList
  {
  public int Num_pro;//行号
  public AxisABS axis;//坐标
  public List<GCode> G_Data_Code;//G代码列表
  public List<MCode> M_Data_Code;//M代码列表
  public List<PSCode> PS_Data_Code;//整体代码列表
  //public GCode G_Data_Code;//G代码
  //public MCode M_Data_Code;//M代码
  }

  /// <summary>
  /// 刀补 G40 G43 G42 G41 G44
  /// </summary>
  private const int TOOL_Length_COMPEN_NONE = 0;
  private const int TOOL_Length_COMPEN_Pos = 1;//刀具长度正向补偿;
  private const int TOOL_Length_COMPEN_Neg = 2;//刀具长度负向补偿
  private const int TOOL_Length_COMPEN_Left = 3;//刀具长度左向补偿;
  private const int TOOL_Length_COMPEN_Right = 4;//刀具长度右向补偿

  /// <summary>
  /// 坐标值类型 G90 G91
  /// </summary>
  private const int DIMENSION_TYPE_ABS = 0;//绝对地址
  private const int DIMENSION_TYPE_INC = 1;//增量地址

  /// <summary>
  /// 运动类型 G00 G01 G02 G03 G04 
  /// </summary>
  private const int MOTION_TYPE_NOT_INIT = -1; ////  
  private const int MOTION_TYPE_RAPID = 0;//注:MOTION_TYPE_WAIT 等待未处理 //点定位
  private const int MOTION_TYPE_LINE = 1;//G01直线插补
  private const int MOTION_TYPE_CW = 2;//G02顺时针圆弧插补
  private const int MOTION_TYPE_CCW = 3;//G03逆时针圆弧插补
  private const int MOTION_TYPE_WAIT = 4;//G04 暂停

  /// <summary>
  /// G M Code
  /// </summary>
  private const int GCODE_MAX_NO_ONELINE = 10;//max G code total number in one line
  private const int MCODE_MAX_NO_ONELINE = 18; //max M code total number in one line
  private const int PROGRAM_MAX = 200;//程序的最大行数
  private const int IFExist_MAX = 10;//max IF Sentence in one programm
  private const int CoValueMAX = 100;


  private const int OVER_SPACE_NUM = 10;//空白行的行数

  GCode GCodeData = new GCode();
  MCode MCodeData = new MCode();
  PSCode PSCodeData = new PSCode();

  DataInfoList DataInfoList_OK = new DataInfoList();
  List<DataInfoList> GMGInfo;
  List<GCode> GCodeDatacab;

  public String CompileMessage="";
  public bool bProgramFinished=false;
  public int num_row = 0;//N后面的数字
  public int k = 0;
  public int flag_row = 0;//行标志位,用于标记";"与" "的关系
  //static GMGemerate_List GMG_information = new GMGemerate_List();

  /// <summary>
  /// 实现参数初始化操作
  /// </summary>
  public void InitialPar()
  {

  GMGInfo = new List<DataInfoList>();
  DataInfoList CHEN = new DataInfoList();
  GCodeDatacab = new List<GCode>();
  GCode liu = new GCode();
  for (int j = 1; j < 5; j++)
  {
  liu.GCodeID = j;
  GCodeDatacab.Add(liu);
   
  }
  GMGInfo[0].G_Data_Code(GCodeDatacab);//本人希望将生成的GCodeDatacab这个list赋值到GMGInfo[0]中,该如何操作?
}
报错信息如下:
C:\Users\Administrator\Desktop\jinqi\CNC\CNC\GMGenerate.cs(172,13): 错误 CS1502: 与“System.Collections.Generic.List<CNC.GMGenerate.GCode>.Add(CNC.GMGenerate.GCode)”最匹配的重载方法具有一些无效参数
C:\Users\Administrator\Desktop\jinqi\CNC\CNC\GMGenerate.cs(172,40): 错误 CS1503: 参数“1”: 无法从“System.Collections.Generic.List<CNC.GMGenerate.GCode>”转换为“CNC.GMGenerate.GCode”

该如何实现赋值操作那?



[解决办法]

C# code
           DataInfoList datainfolist = new DataInfoList();            datainfolist.G_Data_Code = GCodeDatacab;            GMGInfo.Add(datainfolist); ;//本人希望将生成的GCodeDatacab这个list赋值到GMGInfo[0]中,该如何操作?
[解决办法]
datainfolist.G_Data_Code = GCodeDatacab.ToArray();//
[解决办法]
探讨
datainfolist.G_Data_Code = GCodeDatacab.ToArray();//

热点排行