但我这样实现IComparable 也分不出组来啊??? :
  class tmpKey : IComparable<tmpKey>
  {
  public int _Flag;
  public string _YWB_HXT;
  public string _YWB_YWID;
  public string _YWB_DJID;  public int CompareTo(tmpKey _key)
  {   
  if (_Flag.CompareTo(_key._Flag) != 0)
  return _Flag.CompareTo(_key._Flag);
  else if (_YWB_HXT.CompareTo(_key._YWB_HXT) != 0)
  return _YWB_HXT.CompareTo(_key._YWB_HXT);
  else if (_YWB_YWID.CompareTo(_key._YWB_YWID) != 0)
  return _YWB_YWID.CompareTo(_key._YWB_YWID);
  else
  return _YWB_DJID.CompareTo(_key._YWB_DJID);   
  }
  }
  var zq =
  from p in sGERPDataSet.CWTMP
  group p by new tmpKey { _Flag = p.Flag, _YWB_HXT = p.YWB_HXT, _YWB_YWID = p.YWB_YWID, _YWB_DJID=p.YWB_DJID } into g
  orderby g.Key
  select
  new
  {
  g.Key,
  NumProducts = g.Count(),
  g
  };
  foreach (var _v in zq)
  {
  MessageBox.Show(_v.Key._Flag + _v.Key._YWB_HXT + _v.Key._YWB_YWID + _v.Key._YWB_DJID);  MessageBox.Show(_v.NumProducts.ToString());  foreach (var _vv in _v.g)
  {
  MessageBox.Show(_vv.Flag.ToString() + _vv.YWB_HXT.ToString());
  }  }