Contains(...)字符串的方法区分大小写.我想覆盖它,以便使用以下代码(从这里被盗)使其为case-INsensitive :
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道应该在哪里粘贴代码.它应该放在类程序的同一名称空间中吗?它需要一个专门的课程吗?
我正在使用C#Windows 8 Metro应用程序,我正在尝试过滤ObservableCollection<T>使用LINQ,其中属性包含一些字符串,我需要它不区分大小写.
var searchResults = from _rest in App.ViewModel.Restaurants
where _rest.Name.IndexOf(queryText,
StringComparison.CurrentCultureIgnoreCase) >= 0
select _rest;
Run Code Online (Sandbox Code Playgroud)
我工作
Using string1.Contains(string2).ToUpper() 在两个字符串中.Using string1.Contains(string2).ToLower() 在两个字符串中.Using string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0.Using string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0.Using String.Compare(string1, string2, StringComparison.CurrentCultureIgnoreCase).但是这种方法中没有一种能够以不区分大小写的方式为我工作,如果我正确地写出名称,则工作正常.
在Windows 8中有人有同样的问题吗?
提前感谢您提供的任何帮助.
我有一个mvc项目,我在其中使用linq.在我的数据库中有一些记录,例如"Someth ing","SOmeTH ing","someTh ing","SOMETH ING","someTH ING"
我想做这个:
SELECT * FROM dbo.doc_dt_records WHERE name LIKE '%' + @records.Name + '%'
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行此代码,list.Count将返回0.我该怎么办?
records.Name = "someth ing"; //for example
var rec = db.Records.ToList();
var lists = rec.Where(p => p.Name.Contains(records.Name)).ToList();
if (lists.Count > 0)
{
// do sthng
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助......
默认情况下是否可以设置实体框架字符串比较不区分大小写?
如果我使用
string.StartsWith("stringToCompare", StringComparison.CurrentCultureIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
有用.但是当我需要使用时
string.Contains("strigToCompare")
Run Code Online (Sandbox Code Playgroud)
它没有过载.
我正在创建一个postgreSQL数据库阅读器,它还包括一个用户键入自己的查询的方法.我想通过检查键入的查询是否包含任何修改代码来保护数据库.这是我的检查:
private bool chech_unwanted_text(string query)
{
if (query.Contains("DELETE") || query.Contains("delete") || query.Contains("CREATE") ||
query.Contains("create") || query.Contains("COPY") || query.Contains("copy") ||
query.Contains("INSERT") || query.Contains("insert") || query.Contains("DROP") ||
query.Contains("drop") || query.Contains("UPDATE") || query.Contains("update") ||
query.Contains("ALTER") || query.Contains("alter"))
{
return false;
}
else return true;
}
Run Code Online (Sandbox Code Playgroud)
这是检查编辑安全查询的正确方法,还是有其他更可靠的方法来实现这一目标?
我知道授予用户权限,但这不起作用,因为我没有超级用户帐户.
我有一个名为 SelectedSections 的属性,它是从部分集合中分配的。每个部分都包含一个 BidItems 集合,其中包含 1,000 多个项目。当我选择一个部分时,我需要使用一组已过滤的项目来刷新视图数据绑定到的项目集合。
public Section SelectedSection
{
get
{
return selectedSection;
}
set
{
this.SetPropertyByReference(ref this.selectedSection, value);
if (value != null)
{
this.BidItems = value.BidItems
.Where(item =>
!item.Description.ToLower().Contains("flagger") ||
!item.Description.ToLower().Contains("civilian flagger") ||
!item.Description.ToLower().Contains("law enforcement"))
.ToList();
}
this.MptPayment.EditedItem.DiaryPayItem.Section = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我必须过滤掉大约十几个不同类型的项目(为了清楚起见,我只显示了 3 个)。在我的Where子句中,在检查集合是否包含我要过滤掉的内容之前,我将所有内容都转换为小写。
我意识到这会产生大量垃圾,因为集合中 1,000 多个项目中的每一个都会为小写Description内容创建一个新字符串。我的问题是,对集合中的每个项目执行十几次会比我只检查所有已知的变体更昂贵吗?忽略我可能会错过一个变化的事实,因为我对哪个更快的理论更感兴趣。
上面的列表是所有已知的变体。我想知道哪条路线更贵。迭代集合来检查每个已知条件将足够快,而不会产生这么多垃圾的开销。要么对每个项目/描述枚举一次以上,以便找到全部,要么对每个项目/描述枚举一次,同时在堆上创建垃圾字符串,然后进行 GC。
请注意,当用户执行其工作时,此属性可能会重新设置数十次。因此将执行大量(数万次)字符串比较。
我意识到相对于应用程序的其他部分来说,这是一个便宜的操作;我想了解更多信息以进行自我教育,而不是担心实际应用程序中的性能下降。
有没有办法强制LINQ to SQL执行不区分大小写的包含?
我在Entity Framework Core上使用PostgreSQL.
提前致谢!
我有两个文件,sourcecolumns.txt和destcolumns.txt.我需要做的是将源与dest进行比较,如果dest不包含源值,则将其写入新文件.下面的代码有效,除了我有这样的区分大小写的问题:
来源:CPI
dest:Cpi
这些因为大写字母而不匹配,所以输出不正确.随时欢迎任何帮助!
string[] sourcelinestotal =
File.ReadAllLines("C:\\testdirectory\\" + "sourcecolumns.txt");
string[] destlinestotal =
File.ReadAllLines("C:\\testdirectory\\" + "destcolumns.txt");
foreach (string sline in sourcelinestotal)
{
if (destlinestotal.Contains(sline))
{
}
else
{
File.AppendAllText("C:\\testdirectory\\" + "missingcolumns.txt", sline);
}
}
Run Code Online (Sandbox Code Playgroud) 有一个自定义的Wpf窗口(WindowStyle = None,AllowTransparancy = true),并想知道如何让Windows边缘调整大小功能工作..你知道什么时候窗口和鼠标触摸屏左边,右边或顶边(甚至W10的角落).
尝试查看WM通知,但它们似乎都没有我正在寻找..
要清除,而不是普通的窗口调整大小..但是延伸到屏幕边缘并让Windows将其调整为半/满/四分之一(想想它称为Aero Snap).我可以使用普通的调整大小调用来实现它,但是当触摸边缘时,它不显示透明预览窗口或在鼠标上放置动画.
谢谢
我有一本关于C#的书(CSharp)我只知道一点点,但我正在做Console.Writeline的东西
我这里有这个简单的代码
Console.WriteLine("Please enter your name");
string name = Console.ReadLine();
if (name.Contains("no"))
{
Console.WriteLine("\nFine, don't put your name in");
}
else
{
Console.WriteLine("\nHello, " + name);
}
Run Code Online (Sandbox Code Playgroud)
在If部分如果你把"no"显然运行("\n精细,不要把你的名字放在"中),但如果你把"no"改为"No""NO""nO"它就不存在像name.Contains这样的代码无论如何放置它运行它的文本并不重要
像SmallBasic Text.ConvertToLowerCase会将您的文本转换为小写,然后运行IF
谢谢!
c# ×10
string ×4
.net ×2
linq ×2
console ×1
if-statement ×1
overriding ×1
performance ×1
postgresql ×1
sql ×1
windows ×1
windows-8 ×1
wpf ×1