相关疑难解决方法(0)

LINQ包含不区分大小写

此代码区分大小写,如何使其不区分大小写?

public IQueryable<FACILITY_ITEM> GetFacilityItemRootByDescription(string description)
{
    return this.ObjectContext.FACILITY_ITEM.Where(fi => fi.DESCRIPTION.Contains(description));
}
Run Code Online (Sandbox Code Playgroud)

c# linq

168
推荐指数
7
解决办法
16万
查看次数

CultureInfo.InvariantCulture是什么意思?

我有一串这样的文字:

var foo = "FooBar";
Run Code Online (Sandbox Code Playgroud)

我想声明第二个字符串,bar并使其等于我的第一个和第四个字符foo,所以我这样做:

var bar = foo[0].ToString() + foo[3].ToString();
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作,但ReSharper建议我把它Culture.InvariantCulture放在我的括号内,所以这一行最终如下:

var bar = foo[0].ToString(CultureInfo.InvariantCulture)
        + foo[3].ToString(CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

这是什么意思,它会影响我的程序运行方式吗?

.net resharper

160
推荐指数
4
解决办法
14万
查看次数

为什么这个字符串的长度比它中的字符数长?

这段代码:

string a = "abc";
string b = "AC";
Console.WriteLine("Length a = {0}", a.Length);
Console.WriteLine("Length b = {0}", b.Length);
Run Code Online (Sandbox Code Playgroud)

输出:

Length a = 3
Length b = 4
Run Code Online (Sandbox Code Playgroud)

为什么?我唯一能想到的是中文字符长度为2个字节,并且该.Length方法返回字节数.

.net c# string unicode unicode-string

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

检查字符串是否包含列表中的元素(字符串)

对于以下代码块:

For I = 0 To listOfStrings.Count - 1
    If myString.Contains(lstOfStrings.Item(I)) Then
        Return True
    End If
Next
Return False
Run Code Online (Sandbox Code Playgroud)

输出是:

情况1:

myString: C:\Files\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: True
Run Code Online (Sandbox Code Playgroud)

案例2:

myString: C:\Files3\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: False
Run Code Online (Sandbox Code Playgroud)

列表(listOfStrings)可能包含多个项目(最少20个),并且必须根据数千个字符串(如myString)进行检查.

是否有更好(更有效)的方法来编写此代码?

c# vb.net performance coding-style list

141
推荐指数
4
解决办法
21万
查看次数

MVC web api:请求的资源上没有"Access-Control-Allow-Origin"标头

我尝试了本文中所写的所有内容:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api,但没有任何作用.我正在尝试从webAPI2(MVC5)获取数据以使用angularJS在另一个域中使用.

我的控制器看起来像这样:

namespace tapuzWebAPI.Controllers
{
    [EnableCors(origins: "http://local.tapuz.co.il", headers: "*", methods: "*", SupportsCredentials = true)]
    [RoutePrefix("api/homepage")]
    public class HomePageController : ApiController
    {
        [HttpGet]
        [Route("GetMainItems")]
        //[ResponseType(typeof(Product))]
        public List<usp_MobileSelectTopSecondaryItemsByCategoryResult> GetMainItems()
        {


            HomePageDALcs dal = new HomePageDALcs();
            //Three product added to display the data

            //HomePagePromotedItems.Value.Add(new HomePagePromotedItem.Value.FirstOrDefault((p) => p.ID == id));


            List<usp_MobileSelectTopSecondaryItemsByCategoryResult> items = dal.MobileSelectTopSecondaryItemsByCategory(3, 5);
            return items;

        }      
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc cors asp.net-web-api angularjs

114
推荐指数
6
解决办法
17万
查看次数

有没有比在开头使用1 = 1更好的方法来动态构建SQL WHERE子句?

我正在用C#构建一些SQL查询.它将根据代码中存储为变量的某些条件而有所不同.

string Query="SELECT * FROM Table1 WHERE 1=1 ";
if (condition1) 
    Query += "AND Col1=0 ";
if (condition2) 
    Query += "AND Col2=1 ";
if (condition3) 
    Query += "AND Col3=2 ";
Run Code Online (Sandbox Code Playgroud)

它有效,但测试1 = 1似乎并不优雅.如果我没有使用它,我必须记住并检查每次是否已经添加"where"关键字到查询.

有更好的解决方案吗?

c# sql

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

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

实体框架 - 不区分大小写包含?

我想要一个不涉及ToUpper或ToLower的问题的解决方案,正如我在下面的代码中使用的那样;

var upper = term.ToUpper();
using (var db = this.DataContext)
{
    return db.Counties.Where(x => x.CountyName.ToUpper().Contains(upper)).ToList();
}
Run Code Online (Sandbox Code Playgroud)

我正在使用有权使用的框架,因此使用的C#解决方案StringComparison.CurrentCultureIgnoreCase不起作用.它的工作Equals,EndsWithStartsWith,但不是Contains.

entity-framework

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

以不区分大小写的方式查找子字符串 - C#

可能重复:
不区分大小写包含(字符串)

使用Contains()String类的方法,可以找到子字符串.如何以不区分大小写的方式在字符串中查找子字符串?

.net c#

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

C#空传播运算符/条件访问表达式&if块

空传播运营商/条件接入表达在未来看起来像一个非常方便的功能.但我很好奇它是否有助于解决检查子成员是否为null然后在if块内的所述子成员上调用布尔方法的问题:

  public class Container<int>{
       IEnumerable<int> Objects {get;set;}
  }

  public Container BuildContainer()
  { 
      var c = new Container();

      if (/* Some Random Condition */)
         c.Objects = new List<int>{1,2,4};
  }

  public void Test()
  {
      var c = BuildContainer();

      //Old way
      if ( null != c && null != c.Objects && c.Objects.Any())
         Console.Write("Container has items!");


      //C# 6 way?
      if (c?.Object?.Any())
          Console.Write("Container has items!");
  }
Run Code Online (Sandbox Code Playgroud)

c?.Object?.Any()编译吗?如果传播运算符短路(我认为这是正确的术语)为null,那么你有if (null),这是无效的.

C#团队是否会解决这个问题,或者我是否错过了null传播运算符的预期用例?

c# null language-features c#-6.0

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