小编Arc*_*ian的帖子

文件为空检查

如何在C#中检查文件是否为空?

我需要这样的东西:

if (file is empty)
{
    // do stuff
}

else
{
    // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

c#

46
推荐指数
5
解决办法
7万
查看次数

找不到类型或命名空间名称"列"

我确信我在这里遗漏了一些简单的东西.我正在尝试遵循Code First Entity Framework教程,该教程告诉我使用一些数据注释.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;

namespace Model
{
    public class Destination
    {
        public int DestinationId { get; set; }

        [Required]
        public string Name { get; set; }
        public string Country { get; set; }
        [MaxLength(500)]
        public string Description { get; set; }

        [Column(TypeName="image")]
        public byte Photo { get; set; }

        public List<Lodging> Lodgings { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器对前两个注释没有任何问题,但它似乎不喜欢:[Column(TypeName="image")].

错误:

  • 找不到类型或命名空间名称"列".

  • 找不到类型或命名空间名称"ColumnAttribute".

我正在使用Visual Studio 2012和Entity Frameworks …

.net c# entity-framework ef-code-first

15
推荐指数
1
解决办法
1万
查看次数

显示隐藏的表格

我如何显示已隐藏使用的内容

this.Hide();
Run Code Online (Sandbox Code Playgroud)

我试过了

MainMenuForm.Show();
Run Code Online (Sandbox Code Playgroud)

这只是说我需要一个对象参考.然后我尝试了:

MainMenuForm frmMainMenu = new MainMenuForm();
frmMainMenu.Show();
Run Code Online (Sandbox Code Playgroud)

这似乎表明了适当的形式.但是当你退出应用程序时,它仍然保留在内存中,因为它没有显示隐藏的表单,而是显示了表单的新版本.实际上有2个表格实例(一个隐藏,一个可见).

只是为了澄清,MainMenuForm是启动形式.单击(例如)单击选项1时,MainMenuForm会在打开选项1表单时隐藏自身.我想知道的是如何制作MainMenuForm打开的选项1表单"取消隐藏"MainMenuForm然后关闭它自己.

这里的正确程序是什么?

提前致谢.

c# winforms

10
推荐指数
1
解决办法
3万
查看次数

从XML文件中读取元素

我正在尝试从XML文件中读取并使用它来填充我创建的问题对象.这是XML:

<?xml version="1.0" encoding="utf-8" ?>
<quiz>
  <problem>
    <question>Which of the following languages could be used in both Visual Studio and Unity?</question>
    <answerA>Cobol</answerA>
    <answerB>C#</answerB>
    <answerC>C??</answerC>
    <answerD>French</answerD>
    <correct>B</correct>
  </problem>
  <problem>
    <question>What does XML stand for?</question>
    <answerA>eXtremely Muddy Language</answerA>
    <answerB>Xerxes, the Magnificent Chameleon</answerB>
    <answerC>eXtensible Markup Language</answerC>
    <answerD>eXecutes with Multiple Limitations</answerD>
    <correct>C</correct>
  </problem>
</quiz>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的课程.问题出在loadQuestions()方法中.

public partial class frmQuestions : Form
    {
        private XmlDocument doc;
        private XmlNode theQuiz;
        private List<Question> questions;
        private Random random;

        public frmQuestions(string docName)
        {
            InitializeComponent();
            doc = new XmlDocument();
            doc.Load(docName); …
Run Code Online (Sandbox Code Playgroud)

c# xml

5
推荐指数
1
解决办法
1万
查看次数

自定义列表框排序

我需要对许多列表框中包含的数据进行排序.用户将能够使用无线电盒在两种不同类型的排序之间进行选择,其中一种默认情况下在表格加载时进行检查.我已经创建了所需的IF语句,以便测试该单选按钮的检查条件是否为真.但我需要一些帮助来创建自定义排序算法.

每个列表包含相似的查看数据,每行开始的前缀唯一不同.例如,第一个列表框中的每一行以前缀"G30"开头,第二个列表框将以"G31"开头,依此类推.总共有10个列表框(就前缀而言是G30-G39).

第一个搜索算法必须按前13个字符的数字顺序对行进行排序.

示例:这是排序前数据的外观

G35:45:58:11 JG07
G35:45:20:41 JG01
G35:58:20:21 JG03
G35:66:22:20 JG05
G35:45:85:21 JG02
G35:64:56:11 JG03
G35:76:35:11 JG02
G35:77:97:12 JG03
G35:54:29:11 JG01
G35:55:51:20 JG01
G35:76:24:20 JG06
G35:76:55:11 JG01
Run Code Online (Sandbox Code Playgroud)

这就是排序后应该如何看待

G35:45:20:41 JG01
G35:45:58:11 JG07
G35:45:85:21 JG02
G35:54:29:11 JG01
G35:55:51:20 JG01
G35:58:20:21 JG03
G35:64:56:11 JG03
G35:66:22:20 JG05
G35:76:24:20 JG06
G35:76:35:11 JG02
G35:76:55:11 JG01
G35:77:97:12 JG03
Run Code Online (Sandbox Code Playgroud)

如您所见,前缀是相同的.因此它被排序,最低,首先是下一对整数,然后是下一对和下一对,而不是"JG"之后的值.

第二种排序算法将忽略前13个字符,并按"JG"之后的值的顺序排序,最高的第一个.

任何帮助?这里有一些代表给你:)

提前致谢

编辑

namespace Jumpgate_Network_Program
{
    partial class ViewForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;


    /// <summary> …
Run Code Online (Sandbox Code Playgroud)

c# sorting listbox winforms

2
推荐指数
1
解决办法
5918
查看次数

填充数组时检查重复项

我有一个用 6 个随机生成的数字填充的数组。首先,它生成一个 1 到 49 之间的随机数,然后根据数组中的数字进行检查。如果发现重复,它应该再次生成一个随机数,然后再次执行检查。如果没有重复,则将数字添加到数组中。

这是代码:

public void populateArray()
{
    for(int i = 0; i < numberLine.length; i++)
    {
        randomNumber = 1 + randomGen.nextInt(49);
        for(int j = 0; j < i; j++)
        {
            if (numberLine[j] == randomNumber)
            {
                i--;
            }
            else
            {
                continue;
            }
        }
        if(i >= 0)
        {
            numberLine[i] = randomNumber;
        }
        else
        {
            continue;
        }
    }
    Arrays.sort(numberLine);
}
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,这仍然允许重复,尽管很少(大约 50 个数组中的 1 个),例如6 6 16 24 34 46. 但是当我尝试通过取出随机数元素并使用像 30 这样的数字来复制它时,我无法重现结果。怎么了?

java arrays random duplicate-removal

2
推荐指数
1
解决办法
1978
查看次数

从字符串名称在程序集中创建类实例

我不确定这是否可行,而且我在C#.NET中使用程序集还是很新的.

我想要做的是在提供该类的字符串名称时创建一个类的实例.像这样的东西:

using MyAssembly;

namespace MyNameSpace
{
     Class MyClass
     {
          int MyValue1;
          int MyValue2;

          public MyClass(string myTypeName)
          {
               foreach(Type type in MyAssembly)
               {
                    if((string)type == myTypeName)
                    {
                         //create a new instance of the type
                    }
               }
               AssignInitialValues(//the type created above)
          }

          //Here I use an abstract type which the type above inherits from
          private void AssignInitialValues(AbstractType myClass)
          {
               this.value1 = myClass.value1;
               this.value2 = myClass.value2;
          }
      }
 }
Run Code Online (Sandbox Code Playgroud)

显然你无法将字符串与类型进行比较,但它说明了我正在尝试做的事情:在提供的字符串中创建一个在不同程序集中找到的类型.

有什么想法吗?


编辑:

尝试后:

var myObject = (AbstractType) Activator.CreateInstance(null, myTypeName);
AssignInitialValues(myObject);
Run Code Online (Sandbox Code Playgroud)

我收到了一些错误:

  • 可访问性不一致:参数类型"MyAssembly.AbstractType"比方法"MyNameSpace.MyClass.AssignInitialValues(MyAssembly.AstractType)"更难访问 …

.net c# .net-assembly

2
推荐指数
2
解决办法
9350
查看次数

如何转换'System.Linq.IQueryable <System.Collections.Generic.List <Model.Record>到List <Record>

如何检索模型中的列表?

这就是我正在尝试的:

private void cbxPlayers_SelectedValueChanged(object sender, EventArgs e)
        {
            List<Record> records = new List<Record>();
            string selectedPlayer = cbxPlayers.SelectedItem.ToString();
            using (ProgressRecordContext context = new ProgressRecordContext())
            {
                records = (from Player in context.Players
                          where Player.Name == selectedPlayer
                          select Player.Records).ToList<Record>();
            }
        }
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用,我错过了什么?

这些是他们需要的模型:

public class Player
    {
        [Key][DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int AccountNumberId { get; set; }

        public string Name { get; set; }

        public virtual List<Record> Records { get; set; }
    }

public class Record
    {
        public int RecordId { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# ef-code-first entity-framework-5

2
推荐指数
1
解决办法
6065
查看次数