假设我有以下列表:
IList<string> list = new List<string>();
list.Add("Mouse");
list.Add("Dinner");
list.Add("House");
list.Add("Out");
list.Add("Phone");
list.Add("Hat");
list.Add("Ounce");
Run Code Online (Sandbox Code Playgroud)
使用LINQ如何选择包含"ou"的单词并对选择进行排序,以便在开头列出以"ou"开头的单词,然后列出包含但不以"ou"开头的单词.我正在尝试创建的列表将是:
Ounce
Out
House
Mouse
Run Code Online (Sandbox Code Playgroud)
我想出了以下内容,但它无法正常工作:
list.Where(x => x.Contains("ou"))
.OrderBy(x => x.StartsWith("ou"))
.Select(x => x);
Run Code Online (Sandbox Code Playgroud) 有一个自定义的Wpf窗口(WindowStyle = None,AllowTransparancy = true),并想知道如何让Windows边缘调整大小功能工作..你知道什么时候窗口和鼠标触摸屏左边,右边或顶边(甚至W10的角落).
尝试查看WM通知,但它们似乎都没有我正在寻找..
要清除,而不是普通的窗口调整大小..但是延伸到屏幕边缘并让Windows将其调整为半/满/四分之一(想想它称为Aero Snap).我可以使用普通的调整大小调用来实现它,但是当触摸边缘时,它不显示透明预览窗口或在鼠标上放置动画.
谢谢
我有一个Car对象的集合,
IEnumerable<Car>
Run Code Online (Sandbox Code Playgroud)
我希望返回一个过滤的汽车对象集合,基于部分字符串匹配(它不必是startwith),其中Car.Name属性中包含某些文本.
这可能使用LINQ吗?
我有这个if else语句,用于将文本框中的结果与上下文列表进行比较.我想知道如何使它不区分大小写?
value = textbox1.Text;
if (article.contains(value))
{
label = qwerty;
}
else
{
break;
{
Run Code Online (Sandbox Code Playgroud) 我已经读过,在您的应用程序中,您进行了大量的字符串比较并使用ToLower方法,这种方法非常昂贵.我想知道有谁可以向我解释它是多么昂贵.非常感谢任何信息或解释.谢谢!
考虑以下代码:
public static IQueryable<T> WhereDynamic<T>(this IQueryable<T> sourceList, string query)
{
if (string.IsNullOrEmpty(query))
{
return sourceList;
}
try
{
var properties = typeof(T).GetProperties()
.Where(x => x.CanRead && x.CanWrite && !x.GetGetMethod().IsVirtual);
//Expression
sourceList = sourceList.Where(c =>
properties.Any(p => p.GetValue(c) != null && p.GetValue(c).ToString()
.Contains(query, StringComparison.InvariantCultureIgnoreCase)));
}
catch (Exception e)
{
Console.WriteLine(e);
}
return sourceList;
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个 .Net Standard 2.0 类型的项目,我想在其中使用上面的代码。但问题是无法使用这种重载:
.Contains method (query, StringComparison.InvariantCultureIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
它不存在。而在 .NET Core 项目中,则没有问题。对于该Contains()方法的重载,您有解决方案或替代方案吗?
我有一个 LINQ 语句如下:
myList = MyList.Where(x =>
x.Name.Contains(SearchValue) ||
x.Address.Contains(SearchValue)).ToList();
Run Code Online (Sandbox Code Playgroud)
我的数据库可以使用大写或小写的字段,Name例如“VSTS”或“vsts”,
我希望 LINQ 语句在任何情况下都执行。
在上面的 LINQ 语句中,如果我提供小写值并且数据库具有大写值,则搜索失败..这是我不想要的。
我收到了一个应用程序的崩溃报告,该应用程序尝试从之前编写的文件中读取XML.在请求用户将文件发送给我之后,我将其与应该写的文件进行了比较,发现了一个我之前没有遇到过的奇怪问题.
一些(但不是全部)i角色已被替换为?- 无点的我.例如,一个名为"title"的节点很好,但名为"initialdirectory"的节点有第一个被替换,第二个被单独留下,即?nitialdirectory.
直到今天,我甚至都不知道有这样一个角色,但现在我做了,我只是不知道它是如何编写的那样 - XML是XmlWriter用UTF8编码编写的.只是一般的日常写作,没有什么复杂的.
我通常(好吧,因为得到Resharper并且它在跳过参数StringComparison.OrdinalIgnoreCase时对我大吼大叫)在做IndexOf等时使用,但我在编写数据时应该如何做到这一点我不知所措,除非我应该开始改变线程文化.
以前有没有人遇到类似的问题,如果有的话,最好的方法是什么?
我正在尝试编写一个扩展名(实际上取自Case insensitive'Contains(string)')
它在进行字符串比较时补偿土耳其测试.扩展本身很简单:
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
Run Code Online (Sandbox Code Playgroud)
现在关键是我正在试图弄清楚在哪里/如何包含这个,以便整个解决方案(包含多个项目,每个项目都有自己的命名空间和类),可以通过string.Contains轻松访问它.做class.string.Contains或其他方式.
假设有一个项目'Util',它包含在所有其他项目中,有些我可以将它放在Util中(没有类?),以便它可以作为string.Contains在整个解决方案中全局引用?
这甚至可能吗?如果是这样的话?
我需要得到所有结果,其中文本包含一个忽略所有重音的特定单词.
现在我有以下内容:
filtered = result.Where(p => p.@string.ToString().ToUpper().Contains(word));
Run Code Online (Sandbox Code Playgroud)
或简化版:
filtered = result.ToUpper().Contains(word));
Run Code Online (Sandbox Code Playgroud)
如何使"Contains"语句忽略重音?
提前致谢
c# ×9
linq ×4
.net ×1
.net-core ×1
culture ×1
global-scope ×1
ienumerable ×1
list ×1
localization ×1
performance ×1
string ×1
tolower ×1
turkey-test ×1
windows ×1
wpf ×1
xml ×1