【问题标题】:How to create a 'startswith' function inside a class [closed]如何在类中创建“startswith”函数[关闭]
【发布时间】:2018-02-15 15:55:32
【问题描述】:

我正在使用 List 并将我的数据存储在类中,并再次使用新列表来区分接收数据。

我正在使用startswith 函数来检查字符串中的数据。但我也想在循环内调用 startswith 函数,字符串是数据形式 class。 我无法添加 startwith,因为我的 class 没有此函数的定义

下面是演示代码,帮助你理解我在问什么

 class URLClass
{
    public URLClass()
    {

    }

    //packet count
    private int pktCount;
    public int PktCount
    {
        get { return pktCount; }
        set { pktCount = value; }
    }

    //URL accessed
    private string uRLString;
    public string URLString
    {
        get { return uRLString; }
        set { uRLString = value; }
    }}

这是一个类数据...我使用了一个类数据列表并将其命名为 URLData

下面的代码是循环

foreach (var x in URLData) //URLData is list from above class
{
  if (x.StartsWith("SomeText")) // Here i face problem my class don't have any definition of Sartswith function is there any way i can define it manually
}

【问题讨论】:

  • 你需要在你的类中创建一个“StartsWith”方法,让它做你想做的事。
  • 我想你可能只是想要x.URLString.StartsWith("SomeText"),但还不是很清楚。
  • 这段文字应该以什么开头?如果 URLString 属性应该启动,您可以使用该方法...x.URLString.StartsWith("SomeText")...
  • @FCin StartsWith 不是扩展方法。这只是string的常规方法。
  • 如果您不知道如何在类中创建方法,那么您需要的教程比我们所能提供的要多。

标签: c# winforms list foreach startswith


【解决方案1】:

如果你不能修改你的 URLClass 来添加 StartsWith 方法,你仍然可以提供一个可能同样有用的扩展方法

public static class MyURLClassExtensions {
    public static bool StartsWith(this URLClass me, string text) {
        return me.URLString.StartsWith(text);
    }
}

【讨论】:

    【解决方案2】:

    将方法添加到类中:

    class URLClass
    {
        public URLClass()
        {
    
        }
    
        //packet count
        private int pktCount;
        public int PktCount
        {
            get { return pktCount; }
            set { pktCount = value; }
        }
    
        //URL accessed
        private string uRLString;
        public string URLString
        {
            get { return uRLString; }
            set { uRLString = value; }
        }}
    
        public bool StartsWith(string match)
        {
            return uRLString.StartsWith(match);
        }
    

    在循环中使用字符串属性:

    foreach (var x in URLData) 
    {
        if (x.URLString.StartsWith("SomeText"))
    }
    

    任何一个都应该可以,而且都是非常基本的 101 级内容。

    您也可以这样做:

    foreach (var x in URLData.Where(u => u.URLString.StartsWith("SomeText")))
    {
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-12
      • 2014-09-03
      • 2018-12-14
      • 2012-07-02
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 2022-01-12
      相关资源
      最近更新 更多