相关疑难解决方法(0)

通过在开头放置以特定字母开头的单词来对字符串列表进行排序

假设我有以下列表:

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)

c# linq list

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

Wpf自定义窗口,Windows边缘调整大小功能

有一个自定义的Wpf窗口(WindowStyle = None,AllowTransparancy = true),并想知道如何让Windows边缘调整大小功能工作..你知道什么时候窗口和鼠标触摸屏左边,右边或顶边(甚至W10的角落).

尝试查看WM通知,但它们似乎都没有我正在寻找..

要清除,而不是普通的窗口调整大小..但是延伸到屏幕边缘并让Windows将其调整为半/满/四分之一(想想它称为Aero Snap).我可以使用普通的调整大小调用来实现它,但是当触摸边缘时,它不显示透明预览窗口或在鼠标上放置动画.

谢谢

c# windows wpf

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

使用LINQ,如何在部分字符串属性上过滤集合?

我有一个Car对象的集合,

IEnumerable<Car>
Run Code Online (Sandbox Code Playgroud)

我希望返回一个过滤的汽车对象集合,基于部分字符串匹配(它不必是startwith),其中Car.Name属性中包含某些文本.

这可能使用LINQ吗?

c# linq ienumerable

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

c#if else语句不区分大小写

我有这个if else语句,用于将文本框中的结果与上下文列表进行比较.我想知道如何使它不区分大小写?

value = textbox1.Text;

if (article.contains(value))
{   
    label = qwerty;

}
else
{

     break;
{
Run Code Online (Sandbox Code Playgroud)

c# case-sensitive

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

为什么在进行不区分大小写的字符串比较时要避免使用string.ToLower()?

我已经读过,在您的应用程序中,您进行了大量的字符串比较并使用ToLower方法,这种方法非常昂贵.我想知道有谁可以向我解释它是多么昂贵.非常感谢任何信息或解释.谢谢!

.net string performance tolower

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

替换 .Net Standard 2.0 中的 string.Contains(string, StringComparison)

考虑以下代码:

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()方法的重载,您有解决方案或替代方案吗?

c# .net-core .net-standard

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

使用 LINQ 进行 AnyCase 搜索

我有一个 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 语句中,如果我提供小写值并且数据库具有大写值,则搜索失败..这是我不想要的。

c# linq

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

为什么"我"被"ı"取代

我收到了一个应用程序的崩溃报告,该应用程序尝试从之前编写的文件中读取XML.在请求用户将文件发送给我之后,我将其与应该写的文件进行了比较,发现了一个我之前没有遇到过的奇怪问题.

一些(但不是全部)i角色已被替换为?- 无点的我.例如,一个名为"title"的节点很好,但名为"initialdirectory"的节点有第一个被替换,第二个被单独留下,即?nitialdirectory.

直到今天,我甚至都不知道有这样一个角色,但现在我做了,我只是不知道它是如何编写的那样 - XML是XmlWriter用UTF8编码编写的.只是一般的日常写作,没有什么复杂的.

我通常(好吧,因为得到Resharper并且它在跳过参数StringComparison.OrdinalIgnoreCase时对我大吼大叫)在做IndexOf等时使用,但我在编写数据时应该如何做到这一点我不知所措,除非我应该开始改变线程文化.

以前有没有人遇到类似的问题,如果有的话,最好的方法是什么?

c# xml culture localization

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

如何在整个解决方案中声明具有全局范围的扩展

我正在尝试编写一个扩展名(实际上取自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在整个解决方案中全局引用?

这甚至可能吗?如果是这样的话?

c# global-scope turkey-test

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

Linq包含不考虑重音

我需要得到所有结果,其中文本包含一个忽略所有重音的特定单词.

现在我有以下内容:

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# linq

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