小编Jen*_*ter的帖子

Linq函数类似.Net string.CompareOrdinal

我需要使用string.CompareOrdinal(...)linq查询内部来比较字符串.

string max;
string min;

var res = db.Table
            .Where(c => string.CompareOrdinal(c.Id,  min) >= 0)
            .Where(c => string.CompareOrdinal(c.Id,  max) <= 0)
            .ToList();
Run Code Online (Sandbox Code Playgroud)

代码抛出一个异常:

LINQ ti实体不会重新确定方法'Int32 CompareOrdinal(System.String,System.String)'方法,并且此方法无法转换为存储表达式.

表中有很多数据,所以我真的需要这个where子句.

有没有解决的办法?

更新

不是想要确定两个字符串是否相等 - 区分大小写.

我正在努力确定一个字符串是否在一个范围内.所以问题是

  • 有没有办法做到这一点 - 所以这适用于L2E?

显然,我不能用 string.CompareOrdinal

c# linq string comparison entity-framework-4.1

4
推荐指数
1
解决办法
1961
查看次数

ComboBox数据源和实体框架

我将数据模型实体添加到我的项目名为publishingCompanyEntitiesAnd并在我的winform中添加了ComboBox.但是当我想将我的作者列表绑定到我的组合框中时,因为数据源已填充数据,但cmoAuthors.Items.Count返回0但cmoAuthors.DataSource.Count返回2项

        publishContext = new publishingCompanyEntities();
        cmoAuthors.DataSource = publishContext.Authors;
        cmoAuthors.DisplayMember = "FirstName";
Run Code Online (Sandbox Code Playgroud)

c# entity-framework winforms

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

禁用FakeItEasy的AutoMocking

说我有一个界面

public interface IDatabase
{
  IObjectSet<Table1> Table1 {get;}

  IObjectSet<Table2> Table2 {get;}

  //goes on to around Table400
}
Run Code Online (Sandbox Code Playgroud)

所以当我用FakeItEasy创建一个实例时:

var fakeDb = A.Fake<IDatabase>();
Run Code Online (Sandbox Code Playgroud)

所有属性(表)都有一个默认的假值.我可以看到为什么这在大多数情况下都很方便,但在我的情况下,我需要所有这些null

这样做有一个聪明的方法吗?

c# unit-testing fakeiteasy

4
推荐指数
1
解决办法
326
查看次数

如何在XPath中使用sum函数?

我有一个包含以下内容的xml文件:

<Xavor>
<Dev>
    <Emp>1</Emp>
    <Floor>1</Floor>
    <Salary>1200.4</Salary>
</Dev>
<Dev>
    <Emp>2</Emp>
    <Salary>3100.8</Salary>
</Dev>
<Dev>
    <Emp>3</Emp>
    <Floor>1</Floor>
</Dev>
Run Code Online (Sandbox Code Playgroud)

我想用sum函数计算前两个员工的工资总和.我来到这个XPath:

sum(/Xavor/Dev[2]/Salary/text())
Run Code Online (Sandbox Code Playgroud)

但这只返回第二个工资值,即3100.8!!! 当工资中只有非浮点数时,这个XPath工作得很好.请帮帮我.

xml xpath

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

C#语法问题

我在c#示例中看到了以下代码:

public void AddScreen(GameScreen screen, PlayerIndex? controllingPlayer)
{
    screen.ControllingPlayer = controllingPlayer;
    screen.ScreenManager = this;
    screen.IsExiting = false;
}
Run Code Online (Sandbox Code Playgroud)

而且我不知道?在PlayerIndex之后它正在做什么,它是一个枚举,并且在课堂上它的每一个通知都在?背后.我的问题:它做了什么,它叫什么,你为什么要用它.

我用谷歌搜索了这个,但它没有让我走远,因为我不知道这个编码的名称和谷歌过滤掉搜索查询中的问号

c# syntax enums nullable

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

性能,使用Observable集合或INotifyPropertyChange更好吗?

我必须在c#中创建一些程序,以便在我必须使用的程序之间执行IO,或者使用INotifyPropertyChange(on a List<>)或ObservableCollection<>.

我想知道在c#程序之间执行IO操作哪一个更好.

谢谢你的阅读

c# performance c#-4.0

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

如何在C#中获取数据集表列数据类型

我有一个数据集包含1个表,我想迭代循环表.

在循环内部我想检查列1是否是日期类型转义该列并移动到下一列.请帮助我.

excelConnection = new OleDbConnection(connectionString);
                        //Get the name of First Sheet
excelConnection.Open();


excelSheet = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

string sheetName = excelSheet.Rows[0]["TABLE_NAME"].ToString();
excelConnection.Close();

string query = "SELECT * FROM [" + sheetName + "]";

excelCommand = new OleDbCommand(query, excelConnection);
excelDataAdapter = new OleDbDataAdapter(excelCommand);

excelDataAdapter.Fill(excelData);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c#

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

为什么String.CompareTo不占字符串长度?

给出一个有序列表:

var lst = new []{"1","10","2","b","ab"};
var lst2 = lst.OrderBy(c => c);
Run Code Online (Sandbox Code Playgroud)

结果lst2:

1,10,2,ab,b

为什么在比较时String.Compare()还不测量字符串的长度?我原以为结果会更像这样:

1,2,10,b,ab

因为10(某事(1)和某事物(0))应该 2 之后(某事(2)而没有)

有人能说出一个很好的理由吗?

c# string compareto

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

NET正则表达式:{1}无效

if (!Regex.IsMatch("1234567-8A","[0123456789]+-[0123456789K]{1}"))
    Console.WriteLine("It is not match");
else
    Console.WriteLine("It is match");
Run Code Online (Sandbox Code Playgroud)

这输出"它是匹配",但不应该.

为什么{1}不工作?

之后,-我想明确地1个字符(0或1或2或...或9或K)

c# regex

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